Microsoft结构MCP代理
该项目实现了一个AI代理,该代理使用 模型上下文协议(MCP).它提供了命令行界面(CLI)和REST API,以通过编程方式查询Fabric。
代理人使用:
- 语言链/语言图 用于代理工作流。
- Azure OpenAI 对于LLM。
- 微软结构MCP服务器 (
@microsoft/fabric-mcp)与Fabric接口。 - 快速API 用于REST API层。
先决条件
- Python 3.10+
- Node.js(运行
@microsoft/fabric-mcp服务器通过npx). - Azure OpenAI资源。
- 访问Microsoft Fabric。
- 经过身份验证的Azure CLI会话(或其他
DefaultAzureCredential机制)。
设置
选项A:使用紫外线(推荐)
紫外线 是一个快速的Python包管理器和项目管理器。
- 安装依赖项:
uv sync- 运行CLI:
uv run app.py- 运行API:
uv run uvicorn api:app --reload选项B:使用标准pip
- 创建虚拟环境:
python -m venv .venv
source .venv/bin/activate # On Windows: .venv\Scripts\activate- 安装依赖项:
pip install -r requirements.txt- 运行CLI:
python app.py- 运行API:
uvicorn api:app --reload配置
- 配置环境变量:
复制 .env.example 到 .env 并填写您的Azure OpenAI详细信息。
cp .env.example .env编辑 .env:
AZURE_OPENAI_ENDPOINT=https://your-resource.openai.azure.com/
AZURE_OPENAI_DEPLOYMENT_NAME=gpt-4
AZURE_OPENAI_API_VERSION=2024-08-01-preview- 使用Azure进行身份验证:
确保您已登录,以便代理可以访问Azure OpenAI和Microsoft Fabric。
az login用法
该应用程序同时提供CLI和REST API。
REST API端点
GET /health:健康检查。POST /chat:向代理发送消息。
示例请求
curl -X POST "http://localhost:8000/chat" \
-H "Content-Type: application/json" \
-d '{
"message": "List available Fabric workloads"
}'API文档
服务器运行后,您可以在以下位置访问交互式Swagger UI文档: http://localhost:8000/docs
项目结构
app.py:CLI入口点。api.py:FastAPI应用程序入口点。service.py:包含代理和MCP客户端初始化的核心逻辑。requirements.txt:Python依赖关系。
