PureGym MCP
puregym-mcp 是一个Python包和模型上下文协议服务器,用于浏览丹麦的PureGym中心, 查找课程、检查您的预订以及管理来自MCP兼容客户的预订。
这是一个独立的第三方项目,与PureGym无关,也没有得到PureGym的认可或赞助。 PureGym是Pure Gym Limited的注册商标。
- 文件: puregym-mcp.jorgesintes.dev
- 公共只读终结点:
https://puregym-mcp.jorgesintes.dev/mcp - PyPI: puregym mcp
能力
服务器公开了一小部分工具,用于公共类发现和可选的经过身份验证的预订操作。
类发现
无需PureGym证书即可使用:
get_capabilitieslist_class_typeslist_centerssearch_classes
预定管理
可用时间: PUREGYM_USERNAME 和 PUREGYM_PASSWORD 已配置:
list_my_bookingsbook_classcancel_bookingget_center_live_status-实时占用率和容量数据get_center_open_hours-中心的开放时间和人员配备时间
模式
Anonymous mode公开只读工具,并使用14天的搜索窗口。Authenticated mode解锁预订工具,并将默认搜索窗口扩展到28天。
HTTP传输的身份验证
跑步时 streamable-http 或 sse 在传输过程中,服务器要求进行承载令牌身份验证 除了PureGym证书。这可以防止在暴露时未经授权访问您的预订功能 远程MCP服务器。
HTTP传输所需的环境变量:
PUREGYM_USERNAME-您的PureGym帐户电子邮件PUREGYM_PASSWORD-您的PureGym帐户密码MCP_AUTH_TOKEN-您选择的秘密承载令牌(例如,随机字符串)
注: stdio 传输不需要身份验证,默认情况下运行未经身份验证的传输。
使用简单的Auth/HTTP承载令牌从MCP客户端(例如Mistral)连接到您的 MCP_AUTH_TOKEN.
快速启动
对于大多数用户来说,最简单的设置是本地设置 stdio MCP兼容客户端的用法:
{
"mcp": {
"puregym": {
"enabled": true,
"type": "local",
"command": ["uvx", "puregym-mcp"],
"environment": {
"PUREGYM_USERNAME": "your-username",
"PUREGYM_PASSWORD": "your-password"
}
}
}
}环境块是可选的,只需要经过身份验证的功能。
远程部署
服务器同时支持这两种功能 streamable-http 和 sse 用于远程MCP客户端。
承载令牌身份验证
HTTP传输(streamable-http, sse)需要Bearer令牌身份验证来保护您的预订 能力:
export PUREGYM_USERNAME="your-email@example.com"
export PUREGYM_PASSWORD="your-password"
export MCP_AUTH_TOKEN="your-secret-bearer-token"
puregym-mcp --transport streamable-http --host 0.0.0.0 --port 8000 --streamable-http-path /mcp使用从MCP客户端连接 简单身份验证 或 HTTP承载令牌 使用您的身份验证 MCP_AUTH_TOKEN.
Docker编写示例
services:
puregym-mcp:
image: puregym-mcp
environment:
- PUREGYM_USERNAME=${PUREGYM_USERNAME}
- PUREGYM_PASSWORD=${PUREGYM_PASSWORD}
- MCP_AUTH_TOKEN=${MCP_AUTH_TOKEN}
ports:
- "8000:8000"
command:
- --transport
- streamable-http
- --host
- 0.0.0.0
- --port
- "8000"
- --streamable-http-path
- /mcp将敏感值存储在 .env file(永远不要提交此文件):
PUREGYM_USERNAME=your-email@example.com
PUREGYM_PASSWORD=your-password
MCP_AUTH_TOKEN=your-secret-bearer-token-min-16-chars-recommended公共只读主机
- 托管端点:
https://puregym-mcp.jorgesintes.dev/mcp - 以匿名模式运行(无预订功能)
- 仅用于公共类发现
Python库
该包还公开了一个可重用的客户端和服务层:
from puregym_mcp import PureGymClient, PureGymService
# Anonymous client
client = PureGymClient()
# Authenticated client with custom timeout
client = PureGymClient(
username="your-username",
password="your-password",
timeout=30.0 # seconds
)
service = PureGymService(client)
# Book and cancel return typed results
result = await service.book_class(booking_id, activity_id, payment_type)
print(result.participation_id) # snake_case field
cancel_result = await service.cancel_booking(participation_id)
print(cancel_result.status)码头工人
塑造形象:
docker build -t puregym-mcp .运行公共只读服务器:
docker run --rm -p 8000:8000 puregym-mcp运行一个经过身份验证的私有服务器(使用承载令牌身份验证的HTTP传输):
docker run --rm -p 8000:8000 \
-e PUREGYM_USERNAME=your-email \
-e PUREGYM_PASSWORD=your-password \
-e MCP_AUTH_TOKEN=your-secret-token \
puregym-mcp需要时覆盖默认的集装箱运输或路径:
docker run --rm -p 8000:8000 puregym-mcp \
--transport sse \
--host 0.0.0.0 \
--port 8000 \
--sse-path /sse发展
克隆仓库并安装开发依赖项:
uv sync --dev从源代码运行:
uv run puregym-mcp --transport stdio运行检查:
uv run pytest
uv run python -m compileall puregym_mcp tests
uv build在发布之前,在本地测试构建的包:
uvx --from dist/puregym_mcp-0.3.0-py3-none-any.whl puregym-mcp --transport stdio运行真正的API集成测试(需要凭据):
PUREGYM_USERNAME=your-username PUREGYM_PASSWORD=your-password uv run pytest tests/real_api -m real_apiMCP检查员
针对此仓库启动检查器:
npx @modelcontextprotocol/inspector \
uv \
--directory /path/to/puregym-mcp \
run \
puregym-mcp --transport stdio在身份验证模式下启动它:
npx @modelcontextprotocol/inspector \
-e PUREGYM_USERNAME=your-email \
-e PUREGYM_PASSWORD=your-password \
-- \
uv \
--directory /path/to/puregym-mcp \
run \
puregym-mcp --transport stdio检查器UI在以下位置打开 http://localhost:6274.
