使用说明
python mcp服务器演示
用Python编写的模型上下文协议(MCP)演示服务器。
先决条件
需求
python
请安装python >= 3.12 和 pipx 在您的环境中。此模板使用 紫外线 管理环境和依赖关系。
# install uv via pipx
pipx install uv
# sync dependencies
uv sync
这个固执己见的模板使用 Fast API Python API框架。
环境变量配置
该应用程序使用Pydantic的 BaseSettings 用于配置管理 app/config.py,自动将环境变量映射到配置字段。
在CDP中,需要使用CDP约定设置环境变量和机密。请参阅以下链接:
关于当地发展,请参见 说明如下.
装订和格式化
此项目使用 拉夫 用于梳理和格式化Python代码。
奔跑Ruff
要从命令行运行Ruff:
# Run linting with auto-fix
uv run ruff check . --fix
# Run formatting
uv run ruff format .
正在运行MCP服务器
此MCP服务器可以在两种模式下运行:
- 流式HTTP应用程序:作为FastAPI应用程序运行,为HTTP请求提供服务。
- 标准输入/输出(stdio):作为命令行应用程序运行,从标准输入读取并写入标准输出。
这两个都可以在本地运行,但Streamable HTTP应用程序也可以通过Defra CDP平台访问。
这两种模式也可以使用 MCP检查员.
流式HTTP应用程序
要运行Streamable HTTP应用程序,请按照 Docker编写部分 或使用提供的脚本。
标准输入/输出(stdio)
要在stdio模式下运行MCP服务器,您需要执行以下步骤:
- 使用同步依赖关系
uv sync - 使用以下命令构建Python包
uv build - 使用全局安装软件包
pipx install .或pipx install . --force如果您以前安装过它。
地方发展
设置和配置
遵循以下约定,了解本地开发中的环境变量和秘密。
备注 它不使用 .env 或 python-dotenv 因为这不是CDP环境中的惯例。
环境变量: compose/aws.env.
秘密: compose/secrets.env。您需要创建它,因为它被排除在版本控制之外。
图书馆: 确保配置了python虚拟环境,并使用安装了库 uv sync, 同上
预提交挂钩: 确保安装了预提交挂钩,如上所述
发展
此应用程序可以通过使用Docker Compose项目或通过提供的脚本在本地运行 scripts/start_dev_server.sh.
使用Docker Compose
要使用Docker Compose运行应用程序,可以使用以下命令:
docker compose --profile service up --build
如果你想启用热重新加载,你可以按 w 在组合项目运行后启用密钥 watch 模式。
使用提供的脚本
要使用提供的脚本运行应用程序,您可以执行:
./scripts/start_dev_server.sh
此脚本将:
- 检查Docker是否正在运行
- 使用Docker Compose(Localstack、MongoDB)启动依赖服务
- 为当地发展设置环境变量
- 从compose/aws.env和compose/secrets.env加载配置
- 验证是否已设置Python虚拟环境
- 启用热重载启动FastAPI应用程序
然后,该服务将在 http://localhost:8085
测试
确保配置了python虚拟环境,并使用安装了库 uv sync, 同上
测试遵循以下步骤 FastApi文件化方法;使用pytest&starlette。
要测试应用程序运行,请执行以下操作:
uv run pytest
API端点
| 端点 | 描述 |
|---|---|
GET: /health |
健康检查端点 |
自定义云观察指标
使用 aws嵌入式度量库一个例子可以在 metrics.py
为了使此库在环境中工作,环境变量 AWS_EMF_ENVIRONMENT=local 在app配置中设置。这告诉库使用已在CDP中配置的本地cloudwatch代理,并使用在CDP中设置的环境变量 AWS_EMF_AGENT_ENDPOINT, AWS_EMF_LOG_GROUP_NAME, AWS_EMF_LOG_STREAM_NAME, AWS_EMF_NAMESPACE, AWS_EMF_SERVICE_NAME
许可证
本信息根据以下公开政府许可证的条件获得许可:
http://www.nationalarchives.gov.uk/doc/open-government-licence/version/3
使用此信息时,必须在您的产品和应用程序中引用以下归因声明。
包含根据开放政府许可证v3许可的公共部门信息
关于许可证
开放政府许可证(OGL)由英国文具办公室(HMSO)总监制定,以使 公共部门的信息提供者在共同的公开协议下许可其信息的使用和再使用 许可证。
它旨在鼓励自由灵活地使用和重复使用信息,只有少数条件。
