TSML MCP服务器
模型上下文协议(MCP)服务器,提供对12步会议列表(TSML)WordPress插件API的访问。使Claude等人工智能助手能够从运行TSML插件的WordPress网站搜索和访问恢复会议数据。
🚀 概述
此MCP服务器将TSML WordPress插件API端点作为工具公开,允许人工智能助手查询匿名酗酒者、匿名麻醉者、Al-Non和其他12步恢复程序的会议数据。非常适合构建以恢复为重点的应用程序和人工智能助手。
✨ 特性
- 🔍 会议搜索:按日期、时间、类型、位置和出勤选项进行广泛过滤
- 📍 地理搜索:使用纬度/经度进行基于邻近度的会议发现
- 🏷️ 类型筛选:按会议类型筛选(开放、关闭、在线等)
- 🌍 地区/地区支持:分层地理组织
- 💬 提前输入建议:自动完成区域、位置和组
- 🔒 类型安全:完整的TypeScript实现
- 🛡️ 错误处理:通过有意义的消息进行稳健的错误处理
- ⚙️ 灵活的配置:环境变量配置
- 🔑 身份验证支持:可选API密钥身份验证
可用工具
1. tsml_search_meetings
搜索具有广泛筛选选项的恢复会议。
参数:
day:星期几(0=星期日,1=星期一,…,6=星期六)time:按会议时间筛选(HH:MM格式)type:会议类型代码(例如,“O”、“C”、“ONL”、“B”、“BEG”)region:区域名称或术语IDdistrict:地区名称或术语IDquery:跨会议名称、地点和组进行文本搜索group_id:特定组IDlocation_id:特定位置IDlatitude,longitude:邻近搜索的地理坐标distance:搜索半径(默认值:2)distance_units:“mi”(英里)或“km”(公里)attendance_option:“inperson”、“online”或“hybrid”mode:搜索模式data_source:按数据源URL筛选post_status:WordPress帖子状态
常见会议类型:
O-(对任何人)开放C-已关闭(仅限会员)ONL-在线会议B-大书研究BEG-初学者会议W-仅限女性M-仅限男性Y-年轻人LGBTQ-以LGBTQ+为中心
2. tsml_get_typeahead
获取会议搜索的自动完成建议。
返回区域、位置和组名,以帮助用户查找会议。
3. tsml_geocode_address
将地址字符串转换为地理坐标。
参数:
address:要进行地理编码的地址(必填)nonce:用于身份验证的WordPress随机数(必填)
备注:需要通过nonce进行身份验证。
4. tsml_submit_feedback
提交有关会议的反馈或更正。
参数:
meeting_id:会议ID(必填)tsml_name:提交人姓名(必填)tsml_email:提交人电子邮件(必填)tsml_message:反馈信息(必填)tsml_nonce:WordPress随机数(必填)
备注:需要通过nonce进行身份验证。
📦 安装
先决条件
- Node.js 20.0.0或更高版本
- npm或纱线
- 安装了12步会议列表插件的WordPress网站
从npm安装
# Install globally
npm install -g @pjaudiomv/tsml-mcp-server
# Or install locally in your project
npm install @pjaudiomv/tsml-mcp-server从源代码安装
git clone https://github.com/pjaudiomv/tsml-mcp-server.git
cd tsml-mcp-server
npm install
npm run build
npm install -g .配置
环境变量
TSML_WORDPRESS_URL(必填):WordPress网站的基本URLTSML_API_KEY(可选):API密钥,如果站点需要身份验证TSML_TIMEOUT:请求超时(毫秒)(默认值:30000)TSML_USER_AGENT:自定义用户代理字符串
配置示例
export TSML_WORDPRESS_URL=https://example.org
export TSML_API_KEY=your-api-key-here
export TSML_TIMEOUT=60000
export TSML_USER_AGENT=MyApp-TSML-MCP/1.0.0用法
运行服务器
# Using environment variables
TSML_WORDPRESS_URL=https://example.org tsml-mcp-server
# Or if installed from source
TSML_WORDPRESS_URL=https://example.org node dist/index.js与Claude Desktop一起使用
将此添加到您的Claude Desktop配置文件中:
Mac/Linux: ~/Library/Application Support/Claude/claude_desktop_config.json 窗户: %APPDATA%\Claude\claude_desktop_config.json
{
"mcpServers": {
"tsml": {
"command": "tsml-mcp-server",
"env": {
"TSML_WORDPRESS_URL": "https://your-site.org"
}
}
}
}开发示例:
{
"mcpServers": {
"tsml-mcp-server": {
"command": "node",
"args": ["/PATH_TO_REPO/tsml-mcp-server/dist/index.js"],
"env": {
"TSML_WORDPRESS_URL": "https://your-site.org",
"TSML_API_KEY": "optional-api-key"
}
}
}
}与其他MCP客户端一起使用
服务器遵循标准MCP协议,可以与任何兼容MCP的客户端一起使用。
例子
搜索星期二的会议
{
"name": "tsml_search_meetings",
"arguments": {
"day": 2
}
}搜索在线会议
{
"name": "tsml_search_meetings",
"arguments": {
"attendance_option": "online"
}
}搜索地理位置附近
{
"name": "tsml_search_meetings",
"arguments": {
"latitude": 40.7128,
"longitude": -74.0060,
"distance": 5,
"distance_units": "mi"
}
}搜索初学者会议
{
"name": "tsml_search_meetings",
"arguments": {
"type": "BEG",
"day": 2
}
}文本搜索
{
"name": "tsml_search_meetings",
"arguments": {
"query": "step study"
}
}获取提前打字建议
{
"name": "tsml_get_typeahead",
"arguments": {}
}发展
设置
git clone https://github.com/pjaudiomv/tsml-mcp-server.git
cd tsml-mcp-server
npm install可用脚本
npm run dev:以热重载的开发模式运行npm run build:为生产而建造npm run watch:构建并观察变化npm run lint:运行ESLintnpm run lint:fix:修复ESLint问题
项目结构
src/
├── index.ts # Main server implementation
├── client.ts # TSML API client
├── tools.ts # MCP tool definitions and handlers
└── types.ts # TypeScript type definitionsAPI 参考
TSML WordPress插件API
此服务器实现了12步会议列表WordPress插件中的公共AJAX端点:
- 会议:具有广泛过滤功能的会议搜索
- tsml_typeahead:自动完成建议
- tsml_geocode:地址地理编码(需要身份验证)
- tsml_反馈:会议反馈提交(需要身份验证)
响应格式
所有会议回复包括:
- 会议详细信息(姓名、日期、时间、类型、备注)
- 位置信息(地址、坐标、时区)
- 集团信息(如适用)
- 联系方式(如公开)
- 出勤选项(面对面、在线、混合)
出勤选项
会议按出席类型自动分类:
- 个人:传统的实体会议
- 在线的:仅限虚拟会议
- 混合:既可亲自参与,也可在线参与
排序
会议将按以下方式自动排序:
- 星期几(星期日至星期六)
- 会议时间
- 位置名称
- 会议名称
错误处理
服务器提供全面的错误处理:
- 缺少必需的环境变量
- HTTP请求失败
- API特定错误
- 网络超时和连接问题
- 身份验证失败
贡献
- 分叉存储库
- 创建要素分支
- 进行更改
- 如果适用,添加测试
- 运行linting并确保构建通过
- 提交拉取请求
许可证
MIT许可证-有关详细信息,请参阅许可证文件。
支持
- 问题:在GitHub上报告错误和请求功能
- 插件文档: https://wordpress.org/plugins/12-step-meeting-list/
- 社区:康复社区代码
相关项目
更新日志
v1.0.0
- 初始版本
- 全面覆盖TSML API
- TypeScript实现
- 全面的错误处理
- 完整参数验证
