Token导航 LogoToken导航TokenDH.com
Sample MCP Server With Fastapi logo
AI代理未说明官方级别未说明来源级核验

Sample MCP Server With Fastapi

MCP Server

一个基于FastAPI的MCP(Model Context Protocol)服务器示例,用于展示如何通过MCP协议暴露招聘相关的工具和资源。

工具数

5

提示词数

0

GitHub Stars

0

资源数

0
FastAPIClaudeHTTP服务器Claude

安装说明

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

作者 / 组织

unusual-terrain

提供方

unusual-terrain

最后核验

2026/5/17 20:22

快速接入

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

详细介绍

使用FastAPI的MCP服务器示例

此存储库包含一个示例 MCP(模型上下文协议) 服务器使用 快速 API。它演示了如何使用虚拟招聘数据(如候选人、工作和面试)在MCP上公开工具和资源。

🚀 特性

  • 基于HTTP的可流式MCP服务器
  • 以下资源(示例):

- 按ID查找候选人、工作和面试 - 按日期列出的面试名单

  • 工具用于:

- 创建、更新、删除候选人 - 列出候选人 - 按技能搜索候选人 - 按日期列出面试

______________________________________________________________________

📁 项目结构

project-root/
├── main.py
├── app/
│   ├── mcp/
│   │   └── mcp.py
│   └── datasources/
│       ├── candidates.py
│       ├── job_postings.py
│       └── interviews.py

______________________________________________________________________

🔧 安装说明

1.克隆存储库

git clone git@github.com:unusual-terrain/sample_mcp_client_with_fastapi.git
cd sample_mcp_client_with_fastapi

2.安装依赖项

uv sync

3.运行MCP服务器

make run-dev

服务器现在应该在以下位置运行 http://127.0.0.1:8000 MCP终点位于:

http://127.0.0.1:8000/recruit/mcp

4.在开发模式下运行MCP服务器。

mcp dev main.py

MCP检查员将在以下时间启动并运行http://127.0.0.1:6274

______________________________________________________________________

🧠 运作原理

main.py

  • 使用生命周期事件初始化FastAPI以管理MCP会话
  • 在以下位置安装可流式传输的MCP服务器 /recruit/mcp

mcp.py

  • 定义:

- 资源:候选人、职位和面试的静态访问端点 - 工具:用于CRUD操作和过滤的动态可调用工具

示例工具:

@mcp.tool()
def search_candidates_by_skill(skill: str) -> List[Dict]:
    return [c for c in candidates if skill in c["skills"]]

示例资源:

@mcp.resource("candidate://{candidate_id}")
def get_candidate(candidate_id: str) -> Dict:
    return next((c for c in candidates if c["candidate_id"] == candidate_id), None)

______________________________________________________________________

🧪 测试服务器

您可以使用以下方法测试端点:

  • FastAPI Swagger 用户界面: http://127.0.0.1:8000/docs
  • 邮递员或cURL:发送HTTP请求
  • 克劳德客户 (见下文)

______________________________________________________________________

🤖 与Claude客户端连接

如果您使用的是Claude驱动的MCP客户端:

  • 确保MCP服务器在预期的URL上运行(http://0.0.0.0:8000/recruit/mcp)
  • 使用 list_tools() 发现可调用工具
  • 使用Claude的工具使用API动态调用工具

______________________________________________________________________

🧹 清理

确保您使用以下方式处理会话和资源清理 AsyncExitStack 如有需要。这是内置于生命周期事件中的 main.py.

______________________________________________________________________

📌 备注

  • 此示例使用 内存中的虚拟数据 JSON列表中。用生产中的数据库替换。
  • MCP工具和资源可以轻松扩展。
  • 克劳德客户必须处理 tool_use 正确回答并将其循环到对话环境中。

______________________________________________________________________

📄 许可证

此示例项目根据MIT许可证获得许可。

______________________________________________________________________

🙋 支持

如有疑问,请联系\[unusual.terrain.9@gmail.com\]或者提出GitHub问题。

______________________________________________________________________

编码愉快! 🎉

目录标签

目录标签

FastAPIClaudeHTTP服务器MCP协议Python本地部署招聘系统工具暴露

支持客户端

Claude

接入字段

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

未说明

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

none

工具数量(toolCount,工具数)

5

资源数量(resourceCount,资源数)

0

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

0

权限和风险

未说明none部署方式未说明

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

安装前确认

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

仍需确认:installCommand

来源信息

继续浏览同类 MCP