Token导航 LogoToken导航TokenDH.com
Client For Fastapi MCP Server logo
开发工具stdio官方级别未说明来源级核验

Client For Fastapi MCP Server

MCP Server

基于FastAPI的模型上下文协议(MCP)服务器,支持多AI提供商客户端交互和基础用户认证。

工具数

0

提示词数

0

GitHub Stars

0

资源数

0
PythonClaude命令行工具Claude

安装说明

本站只整理中文说明和来源信息,不托管安装包,也不代用户安装。

作者 / 组织

biplavdotcom

提供方

biplavdotcom

最后核验

2026/5/17 20:21

快速接入

先看主来源和安装命令,再打开仓库或文档;下面只保留这个条目的关键接入事实。

命令预览

pip install uv

详细介绍

FastAPI MCP服务器和客户端

该项目提供了一个基于FastAPI的服务器,实现了模型上下文协议(MCP),并包括与OpenAI、Anthropic和Google Gemini等各种AI提供商交互的示例客户端实现。服务器支持基本用户身份验证(注册和登录)。

目录

- 拟人客户 - OpenAI客户端 - 谷歌Gemini客户端

特性

  • MCP服务器: 实现模型上下文协议的FastAPI应用程序。
  • 用户身份验证: 基本用户注册和登录功能(内存存储,用于演示目的)。
  • 多AI提供商客户端: 示例客户:

- 拟人(克劳德模型) - OpenAI(GPT模型) - 谷歌(双子座车型)

  • 互动聊天: 客户端为交互式聊天会话提供命令行界面。
  • 工具使用: 演示客户端如何列出和调用MCP服务器公开的工具。
  • SSE(服务器发送事件): 客户端使用SSE连接到服务器进行实时通信。

项目结构

.
├── .gitignore
├── .python-version      # Specifies Python version (used by pyenv, etc.)
├── README.md            # This file
├── client/              # Contains client implementations
│   ├── client_anthropic.py # Client for Anthropic (Claude)
│   ├── client_gemini.py    # Client for Google (Gemini)
│   ├── client_openai.py    # Client for OpenAI (GPT)
│   └── mcp_client.log      # Log file for client activities (example)
├── main.py              # Main FastAPI server application
├── models/              # Pydantic models
│   └── user.py          # User model for authentication
├── pyproject.toml       # Project metadata and dependencies for Poetry/uv
└── uv.lock              # Lock file for uv (alternative to requirements.txt)

先决条件

  • Python 3.8+
  • uv (推荐使用Python包管理器)或 pip
  • 您打算使用的人工智能服务的API密钥(Anthropic、OpenAI、Google)。

安装

  1. 克隆存储库:
   git clone https://github.com/biplavdotcom/MCP-client-for-fastapi-mcp-server.git
   cd MCP-client-for-fastapi-mcp-server
  1. 安装 uv (如果你没有):
   pip install uv
  1. 使用创建和激活虚拟环境 uv:
   uv venv  # Creates a .venv directory

- 在Windows上:

     .venv\Scripts\activate

- 在Unix/macOS上:

     source .venv/bin/activate
  1. 使用安装依赖项 uv:
   uv pip install -r requirements.txt  # If requirements.txt exists
   # Or, if using pyproject.toml with uv/Poetry:
   uv pip install .

*(注:原始README中提到 requirements.txt,但回购结构表明 pyproject.toml 是主要的。如果 requirements.txt 不存在或不是最新的,请使用生成它 uv pip freeze > requirements.txt 或直接从安装 pyproject.toml)*

环境设置

创建一个 .env 文件在 项目目录(旁边 main.py 和那个 client/ 目录)。客户(client_anthropic.py, client_openai.py, client_gemini.py)加载此 .env 文件。

# .env

# Required for client/client_anthropic.py
ANTHROPIC_API_KEY="your_anthropic_api_key"

# Required for client/client_openai.py
OPENAI_API_KEY="your_openai_api_key"

# Required for client/client_gemini.py
# Note: The client_gemini.py uses genai.configure(api_key=os.environ.get("GOOGLE_API_KEY"))
# Ensure your environment variable is named GOOGLE_API_KEY or update the client code.
GOOGLE_API_KEY="your_google_api_key"

重要提示:

  • 确保 .env 文件位于项目的根目录中,而不是 client/ 目录,如 python-dotenv 从当前工作目录或其父目录加载它。
  • 添加 .env 到你的 .gitignore 文件以阻止提交API密钥。

运行服务器

使用启动FastAPI服务器 uvicorn (其中 uv run 可以管理):

uv run main:app --reload
# Or directly with uvicorn:
# uvicorn main:app --reload

服务器通常在以下时间可用 http://127.0.0.1:8000MCP端点将位于 http://127.0.0.1:8000/mcp.

运行客户端

每个客户端连接到MCP服务器,列出可用的工具,然后与特定的AI提供商交互,如果AI要求,使用MCP服务器来促进工具调用。

启动任何客户端之前,请确保FastAPI服务器正在运行。

拟人客户

  • 使用Anthropic API(例如,Claude模型,如 claude-3-5-sonnet-20241022).
  • 通过向Anthropic API声明服务器提供的工具来支持工具使用。

要运行Anthropic客户端,请执行以下操作:

uv run python client/client_anthropic.py

OpenAI客户端

  • 使用OpenAI API(例如,GPT模型,如 gpt-4o-mini).
  • 通过将服务器提供的工具模式传递到OpenAI API来支持工具使用。

要运行OpenAI客户端:

uv run python client/client_openai.py

谷歌Gemini客户端

  • 使用Google Generative AI API(例如,Gemini模型,如 gemini-2.0-flash).
  • 将MCP工具模式转换为与Gemini函数调用兼容的格式。
  • 管理聊天记录和工具调用/结果序列。

要运行Google Gemini客户端:

uv run python client/client_gemini.py

所有客户端都提供交互式命令行界面。键入您的查询,然后按Enter键。类型 quit 退出。Gemini和OpenAI客户端也支持 refresh 命令清除对话历史记录。

安全说明

这个项目是一个演示,为了清楚起见,它包括了简化的实现。对于生产环境,请考虑以下因素:

  • 用户身份验证:

- 数据库: 使用健壮的数据库(例如PostgreSQL、MySQL)而不是内存中的列表来存储用户。 - 密码散列: 使用bcrypt或Argon2等强算法安全地散列密码。切勿存储纯文本密码。 - 会话管理: 实施安全会话管理(例如,使用JWT或带有安全Cookie的服务器端会话)。

  • API密钥管理:

- 安全存储API密钥(例如,使用HashiCorp Vault、AWS Secret manager或Google Cloud Secret manager等密钥管理器),而不是 .env 生产中的文件。 - 将API密钥权限限制为所需的最低权限。

  • 输入验证:

- 严格验证和净化客户端和服务器端的所有用户输入,以防止注入攻击(XSS、SQLi等)。 - 验证数据类型、长度和格式。

  • HTTPS: 在生产环境中始终使用HTTPS加密传输中的数据。
  • 速率限制: 对API端点实施速率限制,以防止滥用。
  • 错误处理: 实施全面的错误处理,不会泄露敏感信息。
  • 依赖关系管理: 保持依赖关系最新,并定期扫描漏洞。
  • 记录和监控: 实施稳健的日志记录和监控,以检测和应对安全事件。

贡献

欢迎投稿!请随时提交拉取请求。 一些潜在贡献的领域:

  • 添加更复杂的错误处理。
  • 实现更强大的用户身份验证。
  • 通过MCP服务器扩展可用的工具集。
  • 为其他AI提供商添加客户端。
  • 编写单元和集成测试。

许可证

此项目根据MIT许可证获得许可-请参阅 LICENSE 文件以获取详细信息(如果已将其添加到存储库中,则按照原始README假定为MIT)。

目录标签

目录标签

PythonClaude命令行工具AI交互协议本地部署多模型集成FastAPI服务用户认证

支持客户端

Claude

接入字段

传输方式(transport,传输协议)

stdio

鉴权方式(authType,认证方式)

session

工具数量(toolCount,工具数)

0

资源数量(resourceCount,资源数)

0

提示词数量(promptCount,提示词数)

0

权限和风险

stdiosession部署方式未说明

接入前请确认传输方式、认证方式和部署位置,并根据实际工具能力限制访问范围。

安装前确认

不要直接授予不必要的文件、网络或账号权限;先核对安装命令和配置内容。

来源信息

继续浏览同类 MCP