AI助手连接协议服务器

FastMCP是一个轻量级的MCP服务器框架,用于连接AI助手与外部数据源和工具,提供实时信息访问和功能执行能力。

  • by Shabrinath
  • Python
  • 本地部署
  • 更新于
在 GitHub 查看 shabrinath/streamable-mcp-server

使用说明

部署FastMCP服务器并连接到AI客户端

此仓库可帮助您将简单的MCP服务器构建为Docker容器或EC2实例,然后将其连接到Cursor或类似的AI客户端。该存储库包含一个使用FastMCP构建的轻量级MCP(模型上下文协议)服务器,该服务器为AI助手提供实用工具和资源,包括天气信息、单位转换和样本数据资源。

MCP检查员 -您可以在我的另一个仓库中探索MCP Inspector。

什么是MCP?

MCP(模型上下文协议) 是一种开放协议,使人工智能助手能够连接到外部数据源和工具。它允许AI模型:

  • 从外部API访问实时信息
  • 执行工具和功能
  • 检索资源和数据
  • 与数据库、文件系统和其他服务交互

将MCP视为连接人工智能助手与外部世界的“桥梁”,使他们能够超越训练数据,访问当前的动态信息。

MCP与传统API

方面 MCP 传统API
目的 AI助手集成 应用程序间通信
协议 AI工具的标准化协议 各种协议(REST、GraphQL、gRPC)
认证 内置安全模型 自定义身份验证方案
工具发现 自动工具注册和发现 手动API文档和集成
AI优化 专为AI助手工作流程而设计 专为程序化访问而设计
实时 支持流媒体和实时更新 通常基于请求-响应

什么是FastMCP?

FastMCP 是一个简化构建MCP服务器的Python框架。它提供:

  • 基于装饰器的工具定义 -易于功能到工具转换
  • 内置传输层 -HTTP、WebSocket和流媒体支持
  • 自动模式生成 -类型提示成为工具模式
  • 资源管理 -提供静态和动态资源
  • 提示模板 -人工智能助手工具使用指南

传输配置

此服务器使用 transport="streamable-http" 其提供:

  • 实时流媒体 -支持实时数据更新和长时间运行的操作
  • HTTP兼容性 -与标准HTTP客户端和负载均衡器配合使用
  • 有效沟通 -减少AI助手交互的延迟

FastMCP组件

1.工具(@app.tool())

工具是人工智能助手可以调用以执行操作或检索信息的功能。

@app.tool()
def get_weather(city: str):
    """Fetch current weather for a city."""
    return {"city": city, "weather": f"Sample weather for {city}: sunny 25°C"}

特征:

  • 自动参数验证
  • 类型提示转换为JSON模式
  • Docstring成为工具描述
  • 返回值自动序列化

2.资源(@app.resource())

资源提供AI助手可以访问的静态或动态数据。

@app.resource("resource://sample-weather")
def sample_weather():
    """Static resource with example weather data."""
    return {"city": "London", "weather": "London: partly cloudy, +18°C"}

特征:

  • 基于URI的访问(resource://sample-weather)
  • 可以是静态数据或动态计算
  • 支持多种数据格式

3.提示(@app.prompt())

提示指导AI助手如何使用可用工具。

@app.prompt()
def weather_prompt():
    return "Ask me about the weather like: get_weather(city='Paris')"

特征:

  • 提供使用示例
  • 引导AI行为
  • 改进工具发现

使用uv在EC2上部署

先决条件

  • 使用Ubuntu/Debian的EC2实例
  • 为端口8000上的入站流量添加安全组规则
  • 已安装Python 3.8+
  • uv 包管理器

第一步:安装uv

# Install uv
curl -LsSf https://astral.sh/uv/install.sh | sh

# Reload shell
source ~/.bashrc

步骤2:克隆和设置项目

# Clone your repository
git clone <your-repo-url>
cd streamable-mcp-server

# Create virtual environment with Python 3.11
uv venv --python 3.11
source .venv/bin/activate

# Initialize uv project and add dependencies
uv init
uv add fastmcp requests

# Run the server
uv run mcp-server.py

步骤3:配置防火墙

# Allow port 8000 (adjust as needed)
sudo ufw allow 8000

选项2:直接使用Docker

# 1. Build the Docker image
docker build -t mcp-utility-server .

# 2. Run the container
docker run -p 8000:8000 mcp-utility-server

or directly use image from Dockerhub
docker run -d -p 8000:8000 shabari007/mcpserver:latest

连接到IDE

光标IDE

创建或编辑您的 mcp.json 配置文件:

{
  "mcpServers": {
    "utility-mcp-server": {
      "autoApprove": [],
      "disabled": false,
      "transportType": "streamable-http",
      "url": "http://<Public-IP-EC2>:8000/mcp"
    }
  }
}

其他IDE

大多数IDE通过类似的配置模式支持MCP。查看IDE的MCP文档以了解具体语法。

测试连接

  1. 重新启动IDE 添加MCP配置后
  2. 检查MCP状态 在IDE的MCP面板中
  3. 测试工具 让你的AI助手使用它们:
"Get the weather for Tokyo"
"Convert 50 miles to kilometers"
"show me sample convert prompt"
"Show me the sample weather resource"

资源