MyAIServ MCP Server

MyAIServ MCP Server

一个高性能的 FastAPI 服务器,支持模型上下文协议 (MCP),可与大型语言模型无缝集成,具有 REST、GraphQL 和 WebSocket API,以及实时监控和向量搜索功能。

云平台
监控
搜索
Python
访问服务器

README

MCP Server - 模型上下文协议 API

FastAPI Python Poetry Prometheus GraphQL

MCP Server 是一个基于 FastAPI 的模型上下文协议 (MCP) 实现,它提供了一个标准化的接口,用于 LLM 模型和应用程序之间的交互。

特性

  • 🚀 高性能 API 基于 FastAPI 和异步操作
  • 🔄 完全支持 MCP 包含资源、工具、提示和采样
  • 📊 监控和指标 通过 Prometheus 和 Grafana
  • 🧩 可扩展性 通过简单的接口添加新工具
  • 📝 GraphQL API 用于灵活的数据操作
  • 💬 WebSocket 支持 用于实时交互
  • 🔍 语义搜索 通过与 Elasticsearch 集成
  • 🗃️ 缓存 通过 Redis 提高性能
  • 📦 依赖管理 通过 Poetry 实现可靠的包管理

开始使用

安装

  1. 克隆仓库:

    git clone https://github.com/yourusername/myaiserv.git
    cd myaiserv
    
  2. 安装 Poetry (如果尚未安装):

    curl -sSL https://install.python-poetry.org | python3 -
    
  3. 通过 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 文档

项目结构

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

许可证

MIT License

推荐服务器

Kagi MCP Server

Kagi MCP Server

一个 MCP 服务器,集成了 Kagi 搜索功能和 Claude AI,使 Claude 能够在回答需要最新信息的问题时执行实时网络搜索。

官方
精选
Python
Exa MCP Server

Exa MCP Server

模型上下文协议(MCP)服务器允许像 Claude 这样的 AI 助手使用 Exa AI 搜索 API 进行网络搜索。这种设置允许 AI 模型以安全和受控的方式获取实时的网络信息。

官方
精选
serper-search-scrape-mcp-server

serper-search-scrape-mcp-server

这个 Serper MCP 服务器支持搜索和网页抓取,并且支持 Serper API 引入的所有最新参数,例如位置。

精选
TypeScript
The Verge News MCP Server

The Verge News MCP Server

提供从The Verge的RSS feed获取和搜索新闻的工具,允许用户获取今日新闻、检索过去一周的随机文章,以及在最近的Verge内容中搜索特定关键词。

精选
TypeScript
Jira-Context-MCP

Jira-Context-MCP

MCP 服务器向 AI 编码助手(如 Cursor)提供 Jira 工单信息。

精选
TypeScript
Crypto Price & Market Analysis MCP Server

Crypto Price & Market Analysis MCP Server

一个模型上下文协议 (MCP) 服务器,它使用 CoinCap API 提供全面的加密货币分析。该服务器通过一个易于使用的界面提供实时价格数据、市场分析和历史趋势。 (Alternative, slightly more formal and technical translation): 一个模型上下文协议 (MCP) 服务器,利用 CoinCap API 提供全面的加密货币分析服务。该服务器通过用户友好的界面,提供实时价格数据、市场分析以及历史趋势数据。

精选
TypeScript
MCP PubMed Search

MCP PubMed Search

用于搜索 PubMed 的服务器(PubMed 是一个免费的在线数据库,用户可以在其中搜索生物医学和生命科学文献)。 我是在 MCP 发布当天创建的,但当时正在度假。 我看到有人在您的数据库中发布了类似的服务器,但还是决定发布我的服务器。

精选
Python
Tavily MCP Server

Tavily MCP Server

使用 Tavily 的搜索 API 提供 AI 驱动的网络搜索功能,使 LLM 能够执行复杂的网络搜索、获得问题的直接答案以及搜索最近的新闻文章。

精选
Python
mixpanel

mixpanel

连接到您的 Mixpanel 数据。 从 Mixpanel 分析查询事件、留存和漏斗数据。

精选
TypeScript
Sequential Thinking MCP Server

Sequential Thinking MCP Server

这个服务器通过将复杂问题分解为顺序步骤来促进结构化的问题解决,支持修订,并通过完整的 MCP 集成来实现多条解决方案路径。

精选
Python