关于 Anthropic Model Context Protocol (MCP) Server with Ollama Integration
该项目将兼容 Anthropic 的 MCP 服务与中间件结合,由中间件把推理请求转发到 Ollama 和 Gemma3:4b。它适合需要 MCP 上下文功能、本地模型推理及 SQLite 对话上下文存储的用户。
主要功能
- 01用于上下文管理的 MCP 工具
- 02提供对话历史资源
- 03标准提示词模板
- 04中间件连接 Ollama 推理
- 05使用 SQLite 存储对话上下文
适用场景
- 01通过 Ollama 使用 Gemma3:4b 推理
- 02向 MCP 客户端提供对话历史
- 03在会话中保存上下文
MCP 相关
该服务通过 MCP 提供工具、对话历史资源和提示词模板。中间件将推理请求连接到 Ollama,并在服务端存储对话上下文。
配置
本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。
我们还没有获取到这个服务的安装包或远程地址,请按项目 README 中的说明安装。
工具
本地服务需要在你的电脑上运行后才能读取工具,维护者暂未提供工具列表。
详细介绍
Anthropic Model Context Protocol (MCP) 服务与 Ollama 集成
结合兼容 Anthropic 的 Model Context Protocol (MCP) 服务与 Ollama/Gemma 大模型进行推理的混合架构。此实现遵循官方 Model Context Protocol 规范,同时使用开源模型。
概述
本项目实现了一个遵循官方 MCP 规范、兼容 Anthropic 的 MCP 服务,以及用于处理客户端与 Ollama 的 Gemma 模型之间通信的中间件。
架构
┌───────────┐ ┌──────────────┐ ┌────────────────────────┐
│ Client │────▶│ Middleware │────▶│ Anthropic MCP Server │
│ │◀────│ │◀────│ (Claude MCP Protocol) │
└───────────┘ └──────┬───────┘ └────────────────────────┘
│ │
│ │
▼ ▼
┌─────────────┐ ┌────────────────────┐
│ Ollama │ │ SQLite Database │
│ (Gemma3:4b) │ │ (Context Storage) │
└─────────────┘ └────────────────────┘
组件
- MCP 服务:在端口 3000 上实现 Anthropic MCP 协议
- 中间件:处理客户端与 Ollama 之间的通信
- Ollama:运行 Gemma3:4b 模型进行推理
- 数据库:用于存储对话上下文的 SQLite 数据库
功能
-
MCP 协议功能:
- 工具:用于上下文管理
- 资源:公开对话历史
- 提示词:标准提示词模板
-
模型支持:
- 可通过 Claude Desktop 或其他 MCP 客户端与 Claude 模型配合使用
- 兼容任何支持 Model Context Protocol 的客户端
MCP 协议合规性
此实现严格遵循 Anthropic 发布的官方 Model Context Protocol (MCP) 规范:
-
JSON-RPC 2.0 协议:所有通信均使用标准 JSON-RPC 2.0 格式,确保与其他 MCP 客户端和服务兼容。
-
协议初始化:正确实现
/initialize端点,并进行适当的协议版本协商(2024-03-26)和客户端能力声明。 -
工具接口:完整实现工具调用协议及所有必需的注释:
readOnlyHint:表示工具是否会修改状态destructiveHint:标记可能具有破坏性的操作idempotentHint:标记可安全重试的操作
-
资源管理:实现资源协议,以适当的 URI 和 MIME 类型公开对话历史。
-
提示词模板:根据 MCP 规范提供适用于常见操作的标准提示词模板。
-
错误处理:按照协议中的规定,使用标准化错误代码和消息实现适当的错误响应。
-
安全性:遵循 MCP 规范中有关身份验证和授权的安全建议。
-
版本控制:正确处理协议版本控制,确保向前兼容性。
我们的实现旨在与任何 MCP 客户端完全兼容,包括 Claude Desktop、VS Code 扩展以及其他遵循官方规范的工具。
API 端点
MCP 服务(端口 3000)
MCP 服务实现了官方 MCP 协议端点:
- 工具:
/tools/list、/tools/call - 资源:
/resources/list、/resources/read - 提示词:
/prompts/list、/prompts/get - 核心:
/initialize
中间件(端口 8080)
POST /infer:将用户消息发送给 Ollama/Gemma,同时在 MCP 服务中存储上下文GET /health:检查中间件及其连接的运行状况
要求
- Python 3.10+
- Docker 和 Docker Compose
- 已安装 Gemma3:4b 模型的 Ollama
安装
使用设置脚本
chmod +x setup.sh
./setup.sh
设置脚本将:
- 检查是否已安装 Docker
- 检查是否已安装 Ollama,并在需要时拉取 Gemma 模型
- 构建并启动 Docker 容器
手动设置
# Clone the repository
git clone <repository-url>
cd simple-mcp-server
# Make sure Ollama is running with Gemma model
ollama pull gemma3:4b
# Build and run with Docker
docker-compose build
docker-compose up -d
使用示例
使用中间件与 Ollama/Gemma 配合
你可以通过中间件与系统交互。中间件会使用 Ollama/Gemma 进行推理,同时在 MCP 服务中存储对话上下文:
# Start a new conversation
curl -X POST http://localhost:8080/infer \
-H "Content-Type: application/json" \
-d '{"session_id": "user123", "content": "Hello, how are you today?"}'
# Continue the conversation with the same session ID
curl -X POST http://localhost:8080/infer \
-H "Content-Type: application/json" \
-d '{"session_id": "user123", "content": "What's the capital of France?"}'
直接使用 MCP 服务
端口 3000 上的 MCP 服务可与任何 MCP 客户端配合使用,例如:
- Claude Desktop App
- VS Code GitHub Copilot
- Cursor
- 以及 MCP 客户端页面列出的许多其他工具
Docker 配置
该项目使用 Docker 将两个主要组件容器化:
- MCP 服务容器:在端口 3000 上提供 Anthropic MCP 协议
- 中间件容器:连接 Ollama,在端口 8080 上进行 Gemma 模型推理
测试
测试安装:
# Run the included test script
python test_system.py
# Or use the shell script
./test.sh
许可证
该项目采用 MIT 许可证,详情请参阅 LICENSE 文件。
评论
一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。