Common Room MCP服务

一个自托管的MCP服务器,用于将Common Room API与Amazon Q CLI和Claude Code集成,便于查询和更新活动、用户和组织信息。

  • by chris-trag
  • Python
  • 本地部署
  • 2 星标
  • 更新于
在 GitHub 查看 chris-trag/commonroom-mcp

使用说明

公共休息室MCP服务器

⚠️ 注: 这是公共休息室的非官方MCP服务器

这是一个自托管的MCP,用于将Common Room API与Amazon Q CLI和Claude Code集成。目标是能够为自己的实例轻松提问和更新。希望这能让你的活动、细分市场和组织更容易保持最新! 🥳

运作原理

此MCP服务器将Common Room API功能公开为Q CLI可以使用的工具:

  1. MCP协议:服务器通过模型上下文协议与Q CLI通信
  2. 工具注册:每个Common Room API端点都成为一个可调用的工具
  3. 认证:使用环境变量中的Common Room API键
  4. JSON响应:所有数据均以JSON格式返回,便于阅读

公共休息室MCP建筑

%%{init: {'flowchart': {'curve': 'basis'}}}%%
graph LR
    A["💻<br/>Q CLI"] -.-> B["🔌<br/>MCP Server"]
    C["💻<br/>Claude Code"] -.-> B
    B <--> D["☁️<br/>Common Room API"]
    
    style A fill:#6366f1,stroke:#000,stroke-width:3px,color:#fff
    style C fill:#ff9900,stroke:#000,stroke-width:3px,color:#000
    style B fill:#C11C84,stroke:#000,stroke-width:3px,color:#fff
    style D fill:#10b981,stroke:#000,stroke-width:3px,color:#000

当您要求Q CLI或Claude Code“获取公共休息室活动类型”时,它:

  1. 呼叫 commonroom_get_activity_types 工具
  2. 服务器向公用室发出API请求
  3. 将格式化结果返回给Q CLI
  4. 代理在上下文中向您呈现数据

快速设置

  1. 克隆/下载此存储库
  2. 安装依赖项: pip install -r requirements.txt
  3. 创建API信号首选 https://app.commonroom.io/community/YOUR-COMMUNITY-ID/settings/sources/api 以创建API信号并获得 destinationSourceId (参见 公共休息室文件)
  4. 配置环境:复制 .env.example 向 .env 并添加您的API密钥和目的地ID
  5. 配置MCP客户端 (参见 安装.md 详细说明)

克劳德代码

增添 ~/Library/Application Support/Claude/claude_desktop_config.json:

{
  "mcpServers": {
    "commonroom": {
      "command": "python",
      "args": ["/path/to/commonroom-mcp/server.py"],
      "env": {"COMMONROOM_KEY": "${COMMONROOM_KEY}"}
    }
  }
}

亚马逊Q CLI

q chat --mcp-config ~/.config/amazon-q/mcp-config.json

📖 完整安装指南
🔧 详细设置指南

设置

  1. 安装依赖项:

    cd /path/to/commonroom-mcp
    pip install -r requirements.txt
    
  2. 获取公共房间API代币:

    • 转到您的公共休息室社区设置: https://app.commonroom.io/community/YOUR-COMMUNITY-ID/settings/api-tokens
    • 点击“创建API令牌”
    • 为其命名(例如,“MCP服务器”)
    • 复制生成的令牌
    • 看 公共休息室API代币文档 详见
  3. 查找您的目的地ID (用于添加活动/用户):

    • 转到源设置: https://app.commonroom.io/community/YOUR-COMMUNITY-ID/settings/sources
    • 点击“API”来源: https://app.commonroom.io/community/YOUR-COMMUNITY-ID/settings/sources/api
    • 如果不存在API信号:先创建一个(请参见 公共休息室API信号文件)
    • 复制目的地ID号(例如。, 138683)
  4. 配置环境:

    cp .env.example .env
    # Edit .env file with your credentials:
    # COMMONROOM_KEY=your_api_token_here
    # COMMONROOM_BASE_URL=https://app.commonroom.io/community/your-community-id
    # COMMONROOM_DESTINATION_ID=your_destination_id_here
    # COMMONROOM_SIGNAL_ID=your_signal_id_here (optional)
    
  5. 测试服务器:

    python server.py
    

可用工具

  • commonroom_get_activity_types -列出所有活动类型
  • commonroom_get_segments -列出所有分段
  • commonroom_get_tags -列出所有标签
  • commonroom_get_user -通过电子邮件获取用户(包括dashboard_url)
  • commonroom_add_activity -添加活动
  • commonroom_add_user -添加用户
  • commonroom_get_dashboard_urls -获取仪表板部分URL
  • commonroom_get_member_url -获取个人成员页面URL
  • commonroom_get_organization_url -获取单个组织页面URL
  • commonroom_get_segment_url -获取单个细分页面URL

Q CLI中的用法

配置后,您可以在Q CLI中使用公用室工具:

Get all Common Room activity types
Get segments for my team
Add a new blog post activity to Common Room
Show me the URL for user ID 12345

查询示例

获取活动类型:

Show me all Common Room activity types

查找用户:

Get Common Room user data for trag@example.com

获取成员URL:

What's the URL for Common Room member 226882839?

添加活动:

Add a blog post activity to Common Room by chris@trag.dev with title "Fire TV Development Guide"
Add webinar activity by Sarah Johnson (sarah@startup.com, Twitter: @sarahj, Company: TechCorp) with title "Building Smart TV Apps"

📋 点击此处查看更多示例提示>>

主要特点

自动生成的ID

  • 无需手动管理ID -服务器自动为活动和用户生成唯一的ID
  • 格式: activity_1703123456_a1b2c3d4 和 user_1703123456_e5f6g7h8
  • 去重 -Common Room根据电子邮件/社交句柄处理用户合并

灵活的用户数据

提供用户信息的任意组合:

  • 电子邮件地址(建议用于重复数据删除)
  • 社交账号(推特、领英、GitHub、Discord、Slack)
  • 公司详细信息(姓名、职位)
  • 个人信息(全名、位置、个人简介)

示例:只需说“添加博客文章john@company.com(推特:@johndev)“其余的由服务器处理!

工具详细信息

  • commonroom_get_activity_types -返回所有可用的活动类型(文章、网络研讨会等)
  • commonroom_get_segments -返回公共休息室中的受众细分
  • commonroom_get_tags -返回所有标签进行分类
  • commonroom_get_user -通过电子邮件地址查找用户(包括dashboard_url)
  • commonroom_add_activity -创建新的活动记录
  • commonroom_add_user -创建新用户记录
  • commonroom_get_dashboard_urls -返回所有仪表板部分的URL(需要COMMONROOM_BASE_URL)
  • commonroom_get_member_url -返回单个成员页面的URL
  • commonroom_get_organization_url -返回单个组织页面的URL
  • commonroom_get_segment_url -返回单个分段页面的URL

文档

  • 安装.md -Claude Code和Amazon Q CLI的完整安装指南
  • 设置.md -带有截图和链接的详细凭据设置
  • 示例.md -测试MCP服务器的示例提示和查询
  • 规格.md -技术规范和要求
  • openapi.json -公共休息室API规范

保持最新

服务器在启动30秒后自动检查Common Room的OpenAPI规范更新的更改,并记录任何可用的更新。

手动更新:

./update_spec.sh

检查更新:

python version_checker.py

安全

  • 永远不要承诺你的 .env 文件或API密钥
  • 对敏感数据使用环境变量
  • 确保您的公共休息室API代币的安全
  • 此服务器在本地运行,不向第三方发送数据

支持

寻求支持? 看看 公共休息室文件 或加入 不寻常的社区 产品帮助。

如需公共休息室平台支持,请访问:https://www.commonroom.io/contact/

公共休息室不支持此MCP服务器。


贡献

看 贡献.md 发展指南。