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 模型以安全和受控的方式获取实时的网络信息。

官方
精选
DuckDuckGo MCP Server

DuckDuckGo MCP Server

一个模型上下文协议 (MCP) 服务器,通过 DuckDuckGo 提供网页搜索功能,并具有内容获取和解析的附加功能。

精选
Python
contentful-mcp

contentful-mcp

在你的 Contentful Space 中更新、创建、删除内容、内容模型和资源。

精选
TypeScript
Supabase MCP Server

Supabase MCP Server

一个模型上下文协议(MCP)服务器,它提供对 Supabase 管理 API 的编程访问。该服务器允许 AI 模型和其他客户端通过标准化的接口来管理 Supabase 项目和组织。

精选
JavaScript
YouTube Transcript MCP Server

YouTube Transcript MCP Server

这个服务器用于获取指定 YouTube 视频 URL 的字幕,从而可以与 Goose CLI 或 Goose Desktop 集成,进行字幕提取和处理。

精选
Python
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