任务控制平面(MCP)服务器
项目概述
该项目使用FastAPI实现了一个任务控制平面(MCP)服务器,旨在为管理和交互各种功能(称为“技能”)提供一个强大且可扩展的后端。它利用Docker和Docker Compose进行轻松部署,并包含热重载功能以提高开发效率。
特性/特点
- FastAPI 后端: 一个高性能、易用的Web框架,用于使用Python 3.11构建API。
- Docker化部署: 包装在一个
python:3.11-slim用于确保环境一致性的Docker容器。 - Docker Compose: 简化服务器及其依赖项的管理和协调工作。
- 热重载(或热更新): 在开发过程中自动重新加载代码,以确保工作流程顺畅。
- 技能特性: 一个动态系统,允许大型语言模型(LLMs)逐步发现并理解在结构化环境中定义的工具/功能
skillz目录。MCP服务器作为这些技能的文档中心,使大型语言模型(LLMs)能够根据提供的技能定义进行解释和执行操作。在实现技能时,智能体应利用(相关资源或功能)tmp用于任何本地文件生成或复制的目录。 - 本地技能执行MCP(可能是指某种中间件或计算平台)所暴露的技能可以在本地检索并执行,为客户端操作提供了灵活性。请参阅
GEMINI.md关于如何在本地使用这些技能的详细说明。
入门指南/开始使用
要设置并运行MCP服务器,请确保已安装Docker和Docker Compose。
- 克隆仓库:
git clone https://github.com/pwntato/skillz_mcp
cd skillz_mcp- 启动服务器:
docker compose up -d此命令将构建Docker镜像(如果尚未构建)并以分离模式启动服务器。
- 访问API文档:
服务器将在 http://localhost:8000您可以访问交互式API文档(Swagger UI),方法是导航至 http://localhost:8000/docs 在您的网络浏览器中。
API终端点
/重定向到API文档(/docs)。/skills返回一个instruction字段说明了大型语言模型(LLM)技能的目的,以及可用技能列表,包括技能名称、描述和skill_id(源自技能的目录名)。/skills/{skill_id}/{file_path:path}检索一个instruction字段用于解释大型语言模型(LLM)所需技能的目的,以及特定技能目录中某个文件的内容。LLM利用此信息逐步加载技能详情及相关脚本。/skills/{skill_id}/files返回一个instruction字段用于解释大型语言模型(LLM)技能的目的,同时列出给定技能目录中的所有文件列表。
技能发展
“技能”功能允许动态扩展MCP服务器的功能。每个技能都在其专属目录下进行定义,位于 skillz/ 文件夹。MCP服务器作为这些技能定义的存储库,然后由大型语言模型(LLM)对这些定义进行解释和执行。
- 这个(或“它”)
skillz目录已挂载到容器中,在/skillz并且可用于存储和访问数据。 - 该(或:这个)
tmp在开发或代理操作期间,该目录可用于在本地生成或复制文件。其内容已被git忽略。
测试
自动化测试是通过以下方式配置的 pytest 可以在本地运行,也可以通过GitHub Actions运行。
在本地运行测试(请确保您已 pytest 并且 httpx 安装在您的本地Python环境中):
PYTHONPATH=. pytest做出贡献
欢迎投稿!请参考 GEMINI.md 为发展公约和准则(制定基础/提供依据)。
许可证
这个项目遵循MIT许可证进行授权。详见 LICENSE 文件中有详细信息。
