消息与公司数据整合工具

MCP Toolkit 是一个整合Supabase消息和公司数据增强工具的服务,支持通过Streamable HTTP (SSE + POST) 进行部署,适用于需要高效管理和查询LinkedIn消息及公司数据的场景。

  • by voitech-bay
  • TypeScript
  • 本地部署
  • 更新于
在 GitHub 查看 voitech-bay/mcp-toolkit

使用说明

MCP工具包

单MCP服务器合并 Supabase消息 和 公司充实 工具。暴露MCP 流式HTTP(SSE+POST) 易于部署(例如Vercel)。

工具

  • get_linkdin_message –来自Supabase的LinkedIn消息(表LinkedinMessages)
  • get_senders –来自Supabase的发件人(表发件人)
  • get_contacts –来自Supabase的联系人(表联系人)
  • get_conversation_by_contact_name –按姓名查找联系人,返回该联系人+完整的LinkedIn对话(按lead_uuid)
  • get_conversation_by_sender -发件人的所有LinkedIn消息(所有对话)(按sender_proprofile_uid)
  • get_conversation_by_message –按消息id或对话UUID显示完整对话线程
  • get_company_root_context –通过company_id获取公司的根上下文(表CompaniesContext)
  • set_company_root_context –按company_id创建或更新公司的根上下文(表CompaniesContext)
  • 搜索_公司 –阿波罗组织搜索
  • 搜索_人物 -阿波罗人搜索
  • search_lookalike_公司 –Ocean.io相似的公司

对话工具——何时使用

场景 MCP工具 光标提示示例
按联系人姓名查找对话 get_conversation_by_contact_name “查找与John Doe的对话”/“显示名为Alice Smith的联系人的LinkedIn帖子”
按发件人查找所有对话 get_conversation_by_sender “显示来自发件人uuid abc-123的所有邮件…”/“此发件人的所有对话”
通过特定消息查找对话 get_conversation_by_message “获取消息id xyz的完整线程”/“显示包含此消息的对话”

MCP调用示例(Cursor/API)

1.按联系人姓名

{ "name": "get_conversation_by_contact_name", "arguments": { "contactFullName": "John Doe" } }

可选: "messageLimit": 500 (默认值500,最大值1000)。

2.按发件人(所有对话)

{ "name": "get_conversation_by_sender", "arguments": { "senderProfileUuid": "550e8400-e29b-41d4-a716-446655440000" } }

可选: "messageLimit": 500.

3.通过消息(完整线程)

按消息id(工具查找 linkedin_conversation_uuid 来自该消息):

{ "name": "get_conversation_by_message", "arguments": { "messageId": "msg-123" } }

通过对话UUID(如果您已经拥有):

{ "name": "get_conversation_by_message", "arguments": { "conversationUuid": "550e8400-e29b-41d4-a716-446655440000" } }

可选: "messageLimit": 500.

4.公司根上下文(get)

{ "name": "get_company_root_context", "arguments": { "companyId": "550e8400-e29b-41d4-a716-446655440000" } }

返回行(id、company_id、rootContext、created_at)或表示未找到。 companyId 是公司UUID(companys.id)。

5.公司根上下文(套)

按company_id创建或更新;如果存在一行,则进行更新,否则插入新行:

{ "name": "set_company_root_context", "arguments": { "companyId": "550e8400-e29b-41d4-a716-446655440000", "rootContext": "Your context text here..." } }

使用 "rootContext": null 以清除。需要Supabase表 CompaniesContext (列:id、created_at、rootContext、company_id)。

深度链接(用于光标/共享的应用程序URL)

使用这些URL打开右侧表格上的web应用程序,以便您可以使用行操作(“按联系人查找对话”、“按消息查找对话”和“按发件人查找所有对话”)。替换 https://your-app.vercel.app 使用您部署的基本URL(或 http://localhost:5173 当在本地运行前端时)。

场景 深度链接
按联系人查找对话 https://your-app.vercel.app/?table=contacts
按消息查找对话 https://your-app.vercel.app/?table=linkedin_messages
按发件人查找所有对话 https://your-app.vercel.app/?table=senders

从每张表中,使用 行动 行上的列(消息图标)用于在模式中加载该对话。您可以使用过滤器和分页共享链接,例如。 ?table=contacts&page=2&cols=name,uuid (请参阅应用程序URL查询参数)。

本地开发

npm install
cp .env.example .env   # fill in keys
  • 标准(适用于光标/IDE MCP):
    npm run dev --在Cursor MCP配置中用作命令: npx tsx src/stdio.ts (或 node dist/stdio.js 建成后)。

  • HTTP(测试SSE端点):
    npm run dev:http --服务器在 http://localhost:3000/mcp。在支持流式HTTP/SSE的MCP客户端中使用此URL。

  • 前端(Vue 3+TypeScript):
    npm run dev:frontend --Vite开发服务器,支持热重载。代理 /api 到 http://localhost:3001 默认情况下;跑 npm run dev:api 在本地API的另一个终端中(或 npm run dev:http 对于MCP为3000)。之后 npm run build,应用程序在 public/ (建造于 frontend/).

  • 当地API(反映Vercel路线):
    npm run dev:api --HTTP服务器位于 http://localhost:3001 使用GET/POST /api/supabase-state, /api/supabase-table-query, /api/conversation, 获取/发布 /api/company-context (公司上下文按id:GET) ?company_id=...,POST正文 { "company_id", "rootContext" }). 获取/发布 /api/contact-context (联系方式:GET ?contact_id=...,POST正文 { "contact_id", "rootContext" }).

部署到Vercel

  1. 构建: npm run build (部署前需要;生成 dist/).
  2. 部署: vercel (或连接Vercel仪表板中的仓库)。
  3. 集 环境变量 Vercel中您使用的工具:
    • Supabase: SUPABASE_URL, SUPABASE_SERVICE_ROLE_KEY,可选 SUPABASE_MESSAGES_TABLE
    • 阿波罗: APOLLO_API_KEY
    • 海洋: OCEAN_API_TOKEN
  4. MCP端点: https://your-app.vercel.app/api/mcp
    将此用作Cursor或其他客户端中的MCP服务器URL(流式HTTP/SSE)。

项目布局

  • src/ –后端(MCP服务器、API处理程序)
    • services/ –suabase,apollo,海洋,源api,同步suabase
    • tools/ –获取linkedin消息、获取发件人、获取联系人、按联系人姓名获取对话、按发件人获取对话、通过消息获取对话、获取公司根上下文、设置公司根上下文,公司丰富
    • server.ts –合并MCP服务器+流式HTTP处理程序
    • stdio.ts –本地MCP的stdio条目
    • standalone-http.ts –本地HTTP服务器
  • frontend/ –Vue 3+TypeScript应用程序(内置于 public/)
    • src/ –App.vue,组件(计数卡,最新表),类型
    • index.html –Vite入口
  • api/ –Vercel无服务器(mcp、suabase状态、suabaase同步、suababase表查询、对话、公司上下文)