Ubuntu 0ccbd03186 Microsoft Learn Agent - 微软文档查询工具
功能:
- search_microsoft_docs: 搜索 Microsoft Learn 文档
- get_microsoft_doc: 获取完整文档内容(Markdown)
- search_microsoft_code_samples: 搜索代码示例
- list_microsoft_learn_tools: 列出可用工具

特性:
- 支持 Microsoft Learn MCP API (SSE 格式)
- 集成 Pydantic AI 进行结果整理和解释
- 提供 REST API 和 MCP 协议端点
- 支持 API Key 验证
2026-01-25 07:59:02 +00:00

Microsoft Learn Agent

基于 Pydantic AI 和 FastMCP 的微软文档查询 Agent。

功能概述

Microsoft Learn Agent 提供以下功能:

  • 搜索 Microsoft Learn 文档 - 在 Microsoft Learn 上搜索技术文档、API 参考、教程等
  • 获取文档内容 - 根据 URL 获取完整的文档内容
  • 列出可用工具 - 查看 Microsoft Learn MCP 服务器提供的所有工具

快速开始

1. 环境变量配置

# LiteLLM Gateway 配置
export LITELLM_GATEWAY_URL="https://litellm.graystone-fb459c5d.southeastasia.azurecontainerapps.io/v1"
export OPENAI_API_KEY="your-api-key"

# Microsoft Learn MCP 服务器(可选,默认使用官方地址)
export MICROSOFT_LEARN_MCP_URL="https://learn.microsoft.com/api/mcp"

# 服务端口(可选,默认 8000)
export API_PORT=8000

2. 本地测试

cd microsoft-learn
pip install -r requirements.txt
python run_api_server.py

3. 构建镜像

docker build -t microsoft-learn:latest .

4. 运行容器

docker run -d -p 8000:8000 \
  -e LITELLM_GATEWAY_URL="https://..." \
  -e OPENAI_API_KEY="your-key" \
  microsoft-learn:latest

项目结构

microsoft-learn/
├── Dockerfile
├── requirements.txt
├── run_api_server.py      # 启动脚本
└── src/
    ├── __init__.py
    └── server/
        ├── __init__.py
        ├── api_server.py   # FastAPI + MCP HTTP
        └── mcp_server.py   # MCP 工具定义

API 端点

REST API

  • GET / - 服务信息
  • GET /health - 健康检查
  • POST /api/v1/search - 搜索文档(需要 API Key)
  • POST /api/v1/doc - 获取文档内容(需要 API Key)
  • GET /api/v1/tools - 列出可用工具(需要 API Key)

MCP 端点

  • POST /mcp - MCP HTTP 端点
  • GET /mcp/sse - MCP SSE 端点
  • POST /mcp/sse - MCP SSE POST 端点

使用示例

搜索文档

curl -X POST http://localhost:8000/api/v1/search \
  -H "Content-Type: application/json" \
  -H "api-key: your-api-key" \
  -d '{
    "query": "Azure Functions Python",
    "max_results": 5
  }'

获取文档内容

curl -X POST http://localhost:8000/api/v1/doc \
  -H "Content-Type: application/json" \
  -H "api-key: your-api-key" \
  -d '{
    "doc_url": "https://learn.microsoft.com/en-us/azure/functions/functions-reference-python"
  }'

MCP 调用

curl -X POST http://localhost:8000/mcp \
  -H "Content-Type: application/json" \
  -H "api-key: your-api-key" \
  -d '{
    "jsonrpc": "2.0",
    "id": 1,
    "method": "tools/call",
    "params": {
      "name": "search_microsoft_docs",
      "arguments": {
        "query": "Python Azure SDK",
        "max_results": 10
      }
    }
  }'

环境变量

变量 必需 说明
LITELLM_GATEWAY_URL 是 LiteLLM Gateway URL
OPENAI_API_KEY 是 LLM API Key
MICROSOFT_LEARN_MCP_URL 否 Microsoft Learn MCP 服务器地址,默认 https://learn.microsoft.com/api/mcp
API_PORT 否 服务端口,默认 8000

工具说明

search_microsoft_docs

搜索 Microsoft Learn 文档。

参数:

  • query (string, 必需): 搜索关键词
  • max_results (integer, 可选): 最大返回结果数,默认 10

示例:

{
  "query": "Azure Functions",
  "max_results": 5
}

get_microsoft_doc

获取 Microsoft Learn 文档内容。

参数:

  • doc_url (string, 必需): Microsoft Learn 文档 URL

示例:

{
  "doc_url": "https://learn.microsoft.com/en-us/azure/functions/..."
}

list_microsoft_learn_tools

列出 Microsoft Learn MCP 服务器可用的工具。

参数: 无

注册到 Agent Manager

在 k8s_manager.py 中添加:

# TEMPLATE_PORTS
"microsoft-learn": 8000,

# image_map
"microsoft-learn": "agnettaiji.azurecr.io/ai-agents/microsoft-learn:latest",

在 app.py 的 valid_templates 中添加 "microsoft-learn"。

S
Description
No description provided
Readme
33 KiB
Languages
Python 98.2%
Dockerfile 1.8%