MCP Ollama堆叠
一个模型上下文协议(MCP)聊天应用程序,将Ollama与自定义MCP服务器集成在一起,提供具有工具集成功能的人工智能对话。
项目结构
MCPOllamaStack/
├── MCPServer/ # MCP Server application
│ └── Program.cs # Server implementation
└── MCPClient/ # MCP Client application
└── Program.cs # Client implementation with chat interface概述
该项目由两个主要部分组成:
- MCP服务器:一个使用stdio传输通过模型上下文协议公开工具的web应用程序
- MCP客户端:一个连接到Ollama和MCP服务器的控制台聊天应用程序,提供具有工具功能的交互式人工智能体验
先决条件
所需软件
- .NET SDK (8.0或更高版本)
- 没有 -本地AI模型服务器
- 下载自 去.ai - 必须正在运行 http://localhost:11434
所需型号
该项目已配置为使用 llama3.2:latest 模型。确保已安装此型号:
ollama pull llama3.2:latest安装说明
1.启动Olama
确保Ollama使用所需型号运行:
# Start Ollama (if not already running)
ollama serve
# Verify the model is available
ollama list2.运行项目
导航到客户端目录并运行应用程序:
cd MCPClient
dotnet run客户端将自动:
- 从父目录启动MCP服务器
- 联系Ollama
http://localhost:11434 - 初始化聊天界面
- 显示MCP服务器上的可用工具
用法
聊天界面
应用程序启动后,您将看到:
- MCP服务器上的可用工具列表
- 询问您的问题的提示
可用命令
- 定期聊天:键入任何消息以与AI交互
- 清除历史记录:类型
/clear重置对话历史记录 - 退出:新闻
Ctrl+C停止应用程序
示例会话
Tool: example-tool - Example tool description
Query:
Hello, what can you help me with?
Bot:
I'm an AI assistant that can help you with various tasks. I have access to tools from the MCP server that can extend my capabilities...特性
- 流媒体响应:实时AI响应流,提供更好的用户体验
- 工具集成:MCP服务器工具的自动发现和集成
- 对话历史:在整个会话期间保持聊天上下文
- 错误处理:对丢失的目录和连接问题进行强大的错误处理
建筑
该应用程序使用:
- 奥拉玛夏普:用于连接到Ollama API
- 微软。扩展。人工智能:用于AI聊天客户端抽象
- 模型上下文协议。客户端:用于MCP服务器通信
- 标准运输:用于客户端和服务器之间的通信
故障排除
常见问题
- “找不到MCPServer目录”
- 确保项目结构与预期布局相匹配 - 验证您是从正确的目录运行的
- Ollama连接失败
- 确认Ollama正在运行: ollama list - 检查该服务是否可在以下网址访问 http://localhost:11434
- 未找到型号
- 拉动所需的模型: ollama pull llama3.2:latest
- 工具未加载
- 检查MCP服务器日志是否有任何启动错误 - 确保服务器具有正确的工具实现
日志和调试
MCP服务器包括控制台日志记录,跟踪级别输出指向stderr用于调试目的。
发展
添加新工具
要向MCP服务器添加新工具,请执行以下操作:
- 在MCPServer项目中创建工具类
- 确保它们可以通过以下方式被发现
WithToolsFromAssembly() - 重新启动客户端以重新加载工具
修改模型
要使用不同的Ollama模型,请更新客户端中的模型名称 Program.cs:
new OllamaApiClient(new Uri("http://localhost:11434/"), "your-model-name")许可证
本项目按原样提供,用于教育和发展目的。
