使用说明
# MCPServer+AIAgent
A. .NET 10 演示如何使用 **模型上下文协议(MCP)**该解决方案包含两个项目:
| 项目 | 角色 |
|---|---|
MCPServer |
MCP服务器通过stdio公开文档工具、资源和提示 |
AIAgent |
连接到MCP服务器和AI模型的交互式控制台AI代理 |
先决条件
- .NET 10 SDK
- AI模型提供者帐户(参见 支持的提供商)
- (可选) Node.js——用于运行MCP检查器
解决方案结构
MCPServer+AIAgent.slnx
├── MCPServer/ ← MCP Server project
│ ├── Program.cs ← Bootstraps the MCP server (stdio transport)
│ ├── InMemoryData/
│ │ └── DocsInMemory.cs ← In-memory document store (6 fake docs)
│ └── MCP/
│ ├── Tool/DocumentMCPTool.cs ← ReadDoc + UpdateDoc tools
│ ├── Resource/DocumentMCPResource.cs ← docs://documents URI resources
│ └── Prompt/DocumentMCPPrompt.cs ← Prompt templates
└── AIAgent/ ← AI Agent project
├── Program.cs ← Host bootstrap
├── appsettings.json ← Provider configuration
└── Agent/
├── AgentService.cs ← Chat loop + MCP client wiring
└── ProviderFactory.cs ← Builds the IChatClient from config
运行MCP服务器(独立)
MCP服务器通过以下方式进行通信 标准 (JSON-RPC)。独立运行它会导致阻塞——它需要一个MCP客户端来与之通信。
cd MCPServer
dotnet run
使用VS代码副本进行测试
- 在安装了GitHub Copilot扩展的VS Code中打开项目。
- 点击 配置工具。.. 在“副驾驶”面板中→ 滚动至
stdio-coordinate-server→ 选择所有工具→ click 好的. - 使用提示(前缀
/)调用MCP Prompts,以及+聊天中的图标,用于附加MCP资源。
与MCP检查员一起进行测试
npx @modelcontextprotocol/inspector dotnet run --project MCPServer/MCPServer.csproj
运行AI代理
步骤1--配置您的提供商
编辑 AIAgent/appsettings.json 并设置 Agent:Provider 到支持的值之一,然后填写相应的凭据部分:
{
"Agent": {
"Provider": "OpenAI"
},
"OpenAI": {
"ApiKey": "sk-...",
"Model": "gpt-4o"
}
}
看 支持的提供商 对于所有选项。
步骤2--运行代理
cd AIAgent
dotnet run
代理自动将MCP服务器作为子进程启动,发现其工具,并启动交互式聊天会话。
查询示例
You: List all available documents
You: Read the contents of report.pdf
You: Update plan.md with "Phase 1 complete, starting Phase 2"
You: exit
支持的提供商
通过更改来切换提供商 Agent:Provider 在 appsettings.json — 无需更改代码.
开放人工智能 (默认)
"Agent": { "Provider": "OpenAI" },
"OpenAI": {
"ApiKey": "sk-...",
"Model": "gpt-4o"
}
支持的型号: gpt-4o, gpt-4o-mini, gpt-4-turbo, gpt-3.5-turbo
Azure OpenAI
"Agent": { "Provider": "AzureOpenAI" },
"AzureOpenAI": {
"Endpoint": "https://<your-resource>.openai.azure.com/",
"ApiKey": "<your-key>",
"DeploymentName": "gpt-4o"
}
与OpenAI相同的模型,托管在您的Azure订阅中。
奥拉玛 (本地,免费,无API密钥)
- 从以下位置安装 https://ollama.com
- 拉取模型并启动服务器:
ollama pull llama3.2 ollama serve - 配置:
"Agent": { "Provider": "Ollama" }, "Ollama": { "Endpoint": "http://localhost:11434/v1", "Model": "llama3.2" }
支持的型号: llama3.2, mistral, phi4, qwen2.5, deepseek-r1,以及通过以下方式提供的任何型号 ollama pull.
GitHub模型 (免费套餐)
- 在以下位置创建GitHub个人访问令牌 github/设置/令牌
- 配置:
"Agent": { "Provider": "GitHub" }, "GitHub": { "Token": "github_pat_...", "Model": "gpt-4o" }
支持的型号: gpt-4o, Phi-4, Meta-Llama-3.3-70B-Instruct,及其他 github/市场/模型.
提供商比较
| 提供商 | 成本 | 数据隐私 | 需要API密钥 |
|---|---|---|---|
| OpenAI | 按令牌付费 | 云(OpenAI) | 是 |
| Azure OpenAI | 按令牌付费 | 您的Azure租户 | 是 |
| Ollama | 免费 | 完全本地化 | 否 |
| GitHub模型 | 免费层 | 云(微软) | GitHub PAT |
MCP图元
| 原始 | 它做什么 | 示例 |
|---|---|---|
| 工具 | AI可以发挥的作用 呼叫 | ReadDoc(docId), UpdateDoc(...) |
| 资源 | AI可以提供的数据 阅读 按URI | docs://documents/{docId} |
| 提示 | 可重复使用的提示模板 | read_document_content_prompt |
依赖项
| 项目 | 包 | 版本 | 目的 |
|---|---|---|---|
| MCP服务器 | ModelContextProtocol |
1.2.0 | MCP服务器原语 |
| MCP服务器 | Microsoft.Extensions.Hosting |
10.0.5 | 主机/DI |
| A代理人 | Microsoft.Extensions.AI |
9.5.0 | AI抽象层 |
| A代理人 | Microsoft.Extensions.AI.OpenAI |
10.3.0 | OpenAI+Azure OpenAI集成 |
| A代理人 | Azure.AI.OpenAI |
2.1.0 | Azure OpenAI客户端 |
| A代理人 | ModelContextProtocol |
1.2.0 | MCP客户端 |
| A代理人 | Microsoft.Extensions.Hosting |
10.0.5 | 主机/DI/配置 |