MyAIServ MCP Server
一个高性能的 FastAPI 服务器,支持模型上下文协议 (MCP),可与大型语言模型无缝集成,具有 REST、GraphQL 和 WebSocket API,以及实时监控和向量搜索功能。
README
MCP Server - 模型上下文协议 API
MCP Server 是一个基于 FastAPI 的模型上下文协议 (MCP) 实现,它为 LLM 模型和应用程序之间的交互提供了一个标准化的接口。
特性
- 🚀 高性能 API 基于 FastAPI 和异步操作
- 🔄 完全支持 MCP,包括资源、工具、提示和采样
- 📊 监控和指标 通过 Prometheus 和 Grafana
- 🧩 可扩展性 通过简单的接口添加新工具
- 📝 GraphQL API 用于灵活的数据操作
- 💬 WebSocket 支持 用于实时交互
- 🔍 语义搜索 通过与 Elasticsearch 集成
- 🗃️ 缓存 通过 Redis 提高性能
- 📦 依赖管理 通过 Poetry 实现可靠的包管理
开始使用
安装
-
克隆仓库:
git clone https://github.com/yourusername/myaiserv.git cd myaiserv
-
安装 Poetry (如果尚未安装):
curl -sSL https://install.python-poetry.org | python3 -
-
通过 Poetry 安装依赖:
poetry install
启动服务器
poetry run uvicorn app.main:app --host 0.0.0.0 --port 8000 --reload
或者通过 just 工具:
just run
启动后,API 可通过以下地址访问: http://localhost:8000
API 文档
- Swagger UI: http://localhost:8000/docs
- ReDoc: http://localhost:8000/redoc
- GraphQL Playground: http://localhost:8000/graphql
项目结构
myaiserv/
├── app/
│ ├── core/ # MCP 核心组件
│ │ ├── base_mcp.py # MCP 抽象类
│ │ └── base_sampling.py # 采样基类
│ ├── models/ # Pydantic 模型
│ │ ├── mcp.py # MCP 数据模型
│ │ └── graphql.py # GraphQL 模式
│ ├── services/ # 业务逻辑
│ │ └── mcp_service.py # MCP 服务
│ ├── storage/ # 数据存储
│ ├── tools/ # MCP 工具
│ │ ├── example_tool.py # 工具示例
│ │ └── text_processor.py # 文本处理工具
│ ├── utils/ # 实用工具
│ └── main.py # FastAPI 入口点
├── app/tests/ # 测试
├── docs/ # 文档
│ └── MCP_API.md # API 描述
├── pyproject.toml # Poetry 和工具配置
└── .justfile # just 工具的任务
可用工具
File System Tool
用于处理文件系统的工具,支持读取、写入、删除和列出文件操作。
curl -X POST "http://localhost:8000/tools/file_operations" \
-H "Content-Type: application/json" \
-d '{"operation": "list", "path": "."}'
Weather Tool
用于获取坐标天气数据的工具。
curl -X POST "http://localhost:8000/tools/weather" \
-H "Content-Type: application/json" \
-d '{"latitude": 37.7749, "longitude": -122.4194}'
Text Analysis Tool
用于文本分析的工具,包括情感分析和摘要。
curl -X POST "http://localhost:8000/tools/text_analysis" \
-H "Content-Type: application/json" \
-d '{"text": "Example text for analysis", "analysis_type": "sentiment"}'
Text Processor Tool
用于文本处理的工具,包括格式化、统计计算、实体提取。
curl -X POST "http://localhost:8000/tools/text_processor" \
-H "Content-Type: application/json" \
-d '{"operation": "statistics", "text": "Example text", "stat_options": ["chars", "words"]}'
Image Processing Tool
用于图像处理的工具,支持调整大小、裁剪和应用滤镜。
curl -X POST "http://localhost:8000/tools/image_processing" \
-H "Content-Type: application/json" \
-d '{"operation": "resize", "image_data": "base64...", "params": {"width": 800, "height": 600}}'
WebSocket API
连接到 WebSocket API:
const socket = new WebSocket("ws://localhost:8000/ws");
socket.onopen = () => {
socket.send(JSON.stringify({
type: "initialize",
id: "my-request-id"
}));
};
socket.onmessage = (event) => {
const data = JSON.parse(event.data);
console.log("Received:", data);
};
GraphQL API
GraphQL 查询示例:
# 获取所有工具的列表
query {
getTools {
name
description
}
}
# 执行工具
mutation {
executeTool(input: {
name: "text_processor",
parameters: {
operation: "statistics",
text: "Example text for analysis"
}
}) {
content {
type
text
}
is_error
}
}
运行测试
使用 Poetry 运行测试:
poetry run pytest
或者通过 just 工具:
just test
Docker
通过 Docker Compose 构建和运行
docker compose up -d
运行单个服务:
docker compose up -d web redis elasticsearch
与 LLM 集成
MCP Server 提供了一个标准化的接口,用于与各种供应商的 LLM 模型集成:
import httpx
async def query_mcp_with_llm(prompt: str):
async with httpx.AsyncClient() as client:
# 请求 MCP 以获取上下文和工具
tools_response = await client.get("http://localhost:8000/tools")
tools = tools_response.json()["tools"]
# 发送包含 MCP 上下文的 LLM 请求
llm_response = await client.post(
"https://api.example-llm.com/v1/chat",
json={
"messages": [
{"role": "system", "content": "You have access to the following tools:"},
{"role": "user", "content": prompt}
],
"tools": tools,
"tool_choice": "auto"
}
)
return llm_response.json()
指标和监控
MCP Server 在 /metrics
端点提供 Prometheus 格式的指标。 指标包括:
- 每个工具的请求数量
- 请求执行时间
- 错误和异常
开发
格式化代码和检查 linter:
just fmt
just lint
许可证
推荐服务器
Kagi MCP Server
一个 MCP 服务器,集成了 Kagi 搜索功能和 Claude AI,使 Claude 能够在回答需要最新信息的问题时执行实时网络搜索。
Exa MCP Server
模型上下文协议(MCP)服务器允许像 Claude 这样的 AI 助手使用 Exa AI 搜索 API 进行网络搜索。这种设置允许 AI 模型以安全和受控的方式获取实时的网络信息。
DuckDuckGo MCP Server
一个模型上下文协议 (MCP) 服务器,通过 DuckDuckGo 提供网页搜索功能,并具有内容获取和解析的附加功能。
contentful-mcp
在你的 Contentful Space 中更新、创建、删除内容、内容模型和资源。

Supabase MCP Server
一个模型上下文协议(MCP)服务器,它提供对 Supabase 管理 API 的编程访问。该服务器允许 AI 模型和其他客户端通过标准化的接口来管理 Supabase 项目和组织。
YouTube Transcript MCP Server
这个服务器用于获取指定 YouTube 视频 URL 的字幕,从而可以与 Goose CLI 或 Goose Desktop 集成,进行字幕提取和处理。
serper-search-scrape-mcp-server
这个 Serper MCP 服务器支持搜索和网页抓取,并且支持 Serper API 引入的所有最新参数,例如位置信息。
The Verge News MCP Server
提供从The Verge的RSS feed获取和搜索新闻的工具,允许用户获取今日新闻、检索过去一周的随机文章,以及在最近的Verge内容中搜索特定关键词。
Jira-Context-MCP
MCP 服务器向 AI 编码助手(如 Cursor)提供 Jira 工单信息。
Crypto Price & Market Analysis MCP Server
一个模型上下文协议 (MCP) 服务器,它使用 CoinCap API 提供全面的加密货币分析。该服务器通过一个易于使用的界面提供实时价格数据、市场分析和历史趋势。 (Alternative, slightly more formal and technical translation): 一个模型上下文协议 (MCP) 服务器,利用 CoinCap API 提供全面的加密货币分析服务。该服务器通过用户友好的界面,提供实时价格数据、市场分析以及历史趋势数据。