meetergo

com.meetergo由 meetergo.com 发布官方发布者v0.6.5更新于 Oct 24, 2026

Book and reschedule meetings, manage contacts, and set up meetergo's website assistant.

已验证Streamable HTTP可网页运行效率与工作流知识与记忆商业与电商

概览

AI 生成的概览

meetergo 的排程 MCP 服务器:让助手查找时段、预约、改期和取消会议,管理联系人并搭建网站助理。

可以做什么
  • 查找可预约时段并管理日历:列出会议类型、查询可用时间、预约、改期、取消、添加来宾、写入备注、创建一次性预约链接
  • 管理会议类型和个人预约页面,包括品牌样式与会议类型排序
  • 创建并发送分流表单与资格问题,查看收件人与数据字段
  • 搜索、读取、新建、更新、批量导入和删除 CRM 联系人
  • 搭建并测试 Mira 网站助理:提出方案、创建表单、抓取网站、运行试驾、验证挂件嵌入、补充缺失答案并查看对话洞察
  • 管理知识库与 webhook,并发送单次邮件或附加转录文本
适用场景
当助手需要真正操作 meetergo 日历而不只是查询时使用:预约或调整会议、维护联系人,或把公司网站从没有助理做到能回答并预约的上线状态。它不是文档服务器,那个只能搜索文档。
运行要求
需要 meetergo 账号,以及从集成页面获取的个人访问令牌(rgo-…);若要代表其他用户操作,则需要平台 API 密钥(ak_live:…)并配合 MEETERGO_USER_ID。可以连接托管端点 mcp.meetergo.com/mcp,使用 Bearer Authorization 头或 OAuth 登录;也可以在本地通过 stdio 运行 npm 包,并设置 MEETERGO_TOKEN。本地方式需要 Node.js。
安装前请注意
令牌带有真实写入权限:工具会预约、改期、取消,删除会议类型、表单、联系人、知识文档和 webhook,还会发送邮件或短信。请按实际需要的功能组限制令牌范围,因为受限令牌在范围外的读取也会被拒绝。个人访问令牌始终以其所有者身份操作;平台 API 密钥必须配合 MEETERGO_USER_ID。写入操作在结果不明确时不会重试,超时的预约可能已经生效。

安装

在 SourceWeft 中

  1. 打开 控制台中的 meetergo,将其添加到工作区。
  2. 连接 所需的 凭据。它们会被私密存储,绝不会在公开页面上展示。
  3. 为需要使用其工具的对话启用该服务。

Web executable,通过 Streamable HTTP。 远程服务在工作区中配置后即可从网页运行时运行。

交给智能体安装

把这段提示词粘贴到 Claude Code、Codex、Cursor 等智能体,或 SourceWeft 对话中。智能体会读取该服务器的安装指南,先向你展示发布者、端点和登录方式,经你同意后再把它添加到你的客户端。密钥不会写进任何命令。

阅读 https://sourceweft.com/mcp/com.meetergo%2Fmcp-server/install.md,并按其中说明把这个 MCP 服务器接入我的客户端。修改任何配置之前,先告诉我它的发布者、端点和登录方式,等我确认。不要把 API 密钥写进命令或我会提交的文件;问我密钥应从哪里获取。

查看智能体所依据的安装指南

其他 MCP 客户端

把它添加到你客户端的 mcpServers 配置中。 客户端会在首次连接时完成 OAuth 登录。

{
  "mcpServers": {
    "meetergo": {
      "type": "http",
      "url": "https://mcp.meetergo.com/mcp"
    }
  }
}

README

meetergo MCP server

Lets an AI agent actually run a calendar: find slots, book, reschedule, cancel, review what is coming up, and keep the contact record straight.

Not to be confused with the docs MCP server at https://developer.meetergo.com/mcp, which searches documentation and cannot change anything. Both are useful and they do different jobs:

Docs MCPThis server
Endpointdeveloper.meetergo.com/mcpmcp.meetergo.com/mcp, or npx over stdio
ToolsSearchMeetergo57 scheduling, CRM, Mira and config tools
Can it book?NoYes
Use it towrite an integrationbe the integration

Setup

Create a Personal Access Token at my.meetergo.com/integrations — it looks like rgo-… — then either point your client at the hosted server or run this package locally over stdio. The token works on every plan, including Free.

Hosted

https://mcp.meetergo.com/mcp

Streamable HTTP, authenticated with Authorization: Bearer rgo-…. The path matters: mcp.meetergo.com alone is not the endpoint. For clients that take a remote URL and headers:

json
{  "mcpServers": {    "meetergo": {      "url": "https://mcp.meetergo.com/mcp",      "headers": { "Authorization": "Bearer rgo-your_token_here" }    }  }}

Local (npx)

json
{  "mcpServers": {    "meetergo": {      "command": "npx",      "args": ["-y", "@meetergo/mcp-server"],      "env": { "MEETERGO_TOKEN": "rgo-your_token_here" }    }  }}

Works with Claude Desktop, Claude Code, Cursor, or anything else that speaks MCP.

Scope the token

When you create the token you can limit it to the capabilities the agent actually needs (scheduling, contacts and deals, Mira, forms, account). A limited token is refused on everything outside those groups, including reads, so give it every group whose tools you intend to use — a Mira-only token cannot book, and a scheduling-only token cannot read your knowledge base.

Signing in instead of pasting a token

OAuth sign-in is live on the hosted endpoint. Discovery is published at /.well-known/oauth-protected-resource (RFC 9728), so a capable client can start the flow from the MCP URL. Clients are pre-registered rather than created through dynamic client registration. For a Claude custom connector, enter the public client id mcp-claude under Advanced settings and leave the client secret blank. The directory clients for Claude and ChatGPT are configured with their respective providers.

Cursor and Grok Bot

This repository includes the Cursor Marketplace plugin used by both Cursor and Grok Bot. Install meetergo from Settings, Plugins, Marketplace, then finish the browser sign-in. The plugin connects to the hosted endpoint and uses the public PKCE client id mcp-cursor; there is no client secret or token to paste.

For local review before the marketplace listing is published, load this repository as a local Cursor plugin. Its .cursor-plugin/plugin.json manifest points at mcp.json, which contains the same hosted URL and OAuth client id.

A Personal Access Token works in every MCP client, on every plan including Free. That is what the rest of this page assumes.

Acting for another user

A Personal Access Token always acts as its owner. To run an agent across a whole company — an assistant booking on behalf of several colleagues — use a Platform API Key (ak_live:<uuid>:<secret>) and name the target user:

json
"env": {  "MEETERGO_TOKEN": "ak_live:...",  "MEETERGO_USER_ID": "the-user-uuid"}

The two token types have opposite requirements, and the server checks both at startup rather than letting you find out mid-booking:

  • a Platform API Key must have MEETERGO_USER_ID — the API demands an acting user on nearly every route;
  • a Personal Access Token must not — it always acts as its owner, and the API rejects the header outright.

Against the hosted endpoint the acting user travels as the X-Meetergo-Api-User-Id request header instead of an environment variable; the same two rules apply, and sending it with a Personal Access Token is refused.

Environment

The stdio entry (meetergo-mcp, what npx runs):

VariableRequiredPurpose
MEETERGO_TOKENyesrgo-… Personal Access Token or ak_live:… Platform API Key
MEETERGO_USER_IDwith a Platform API KeyThe user to act as
MEETERGO_API_URLAPI base override, default https://api.meetergo.com/v4
MEETERGO_NEXT_URLBooking-page host rendered into widget install snippets, default https://cal.meetergo.com
MEETERGO_TIMEOUT_MSPer-request timeout, default 30000

Running the hosted entry yourself

The package also ships meetergo-mcp-http, the Streamable HTTP entry that runs behind https://mcp.meetergo.com/mcp. Credentials arrive per request in the Authorization header rather than from the environment, so one process serves any number of accounts — MEETERGO_TOKEN and MEETERGO_USER_ID are not read here. It reads:

VariableRequiredPurpose
PORTListen port, default 8080
MEETERGO_API_URLAPI base override, default https://api.meetergo.com/v4
MEETERGO_NEXT_URLBooking-page host rendered into widget install snippets, default https://cal.meetergo.com
MEETERGO_DASHBOARD_URLDashboard host used for upgrade links in plan-limit errors, default https://my.meetergo.com
MCP_PUBLIC_URLThis server's public URL, default http://localhost:$PORT. Only its origin is used: origin + /mcp is the resource identifier — the resource field of the discovery document, and the value an OAuth token must carry in aud. https://host, https://host/ and https://host/mcp are therefore the same setting. Anything that is not an absolute http(s) URL fails at startup
OAUTH_ISSUERall three or noneOpenID issuer of the authorization server, e.g. https://login.meetergo.com/realms/meetergo. Must be absolute and https — the exchange posts this server's client secret and the user's token to it — or the process refuses to start. A trailing slash is trimmed
OAUTH_CLIENT_IDall three or noneConfidential client this server exchanges tokens into (RFC 8693)
OAUTH_CLIENT_SECRETall three or noneThat client's secret

The three OAUTH_* variables are all-or-nothing. Set all three and an inbound access token is validated first — issuer, aud, typ: Bearer, RS256 signature against the issuer's JWKS, expiry — and only then exchanged for a separate token for the upstream API. The MCP spec forbids forwarding the token a client handed you, so the exchange is not an optimisation; it is the only path.

Set none and the process is bearer-token-only: Personal Access Tokens and Platform API Keys work, both .well-known paths answer 404, the 401 challenge carries no resource_metadata, and an OAuth token is refused rather than passed upstream.

Set one or two and you get the bearer-token-only behaviour above, not a partial OAuth — plus a warning log, oauth_disabled_incomplete_config, naming the variables that are missing.

Retries

Both entries behave the same here. Rate limits and transient upstream errors (429, 502, 503, 504) get up to three attempts in total (so two retries), honouring Retry-After where the API sends one.

Retries are not applied blindly. A booking or cancellation that fails ambiguously — a timeout, a dropped connection, a 502 — may already have been applied by the API, and there is no idempotency key to make a second attempt safe. Only reads are retried on those; writes are retried solely on a 429, the one response that states the request was never processed.

One-prompt onboarding

If your client supports MCP prompts, run meetergo: onboard. Otherwise paste this:

Set up meetergo for my company. Call get_me and get_setup_status first and tell me what already exists. Then analyse my website with propose_conversion_setup and present the proposed setup — meeting types, qualification questions, the website assistant. Build nothing until I approve. After I approve: create what's missing, turn the questions into a routing form with create_qualification_form, crawl my site, then PROVE it works with run_test_drive and show me the verdicts. Finish by giving me the install snippet, and verify with verify_widget_install after I've pasted it.

The agent audits what exists, proposes, waits for your yes, builds, and then shows you scripted visitors booking through your own assistant before anything goes live. A second prompt, meetergo: weekly-review, pulls last week's conversations and offers to teach the assistant every answer it missed.

Plan limits

Every tool reports plan walls structurally: which limit was hit and where upgrading happens, so your agent explains the situation instead of failing vaguely. get_me also returns a plan block (tier, limits) so a good agent warns you before starting something your plan cannot finish. Connecting the server itself is never gated — a token from any plan, including Free, works.

Tools

57 tools, covering scheduling end to end. Scheduling is the loop most agents live in; the rest is there so an agent never has to fall back to raw REST.

Scheduling

ToolWrites?Purpose
get_meConfirm the token works — start here when something looks empty
list_meeting_typesWhat can be booked
get_availabilityBookable slots for a meeting type
book_appointmentyesBook a slot
reschedule_appointmentyesMove an appointment
cancel_appointmentdestructiveCancel, or drop one attendee
list_appointmentsPaginated calendar with filters
get_todays_appointmentsToday only
get_appointmentOne appointment in full, including attendeeIds
add_guestyesAdd a guest email to an appointment
update_appointment_notesyesWrite call prep or an outcome back
create_one_time_booking_linkyesSend a single-use link instead of booking for someone
list_calendar_connectionsWhich calendars are attached

Follow-up

ToolWrites?Purpose
send_quick_emailyesOne-off email to an attendee (5 per 5 min)
update_meeting_transcriptionyesAttach a transcript or summary from a notetaker

Meeting types

ToolWrites?Purpose
get_meeting_typeFull config — read before updating
create_meeting_typeyesCreate a bookable meeting type
update_meeting_typeyesChange one
delete_meeting_typedestructiveRemove one; its page stops working

Booking page

ToolWrites?Purpose
get_personal_pageColours, header, links, meeting-type order
update_personal_pageyesChange branding

Routing forms

ToolWrites?Purpose
list_routing_formsAll forms and funnels
get_routing_formSteps, fields and routing rules
create_routing_formyesBuild a qualification form
update_routing_formyesChange one
delete_routing_formdestructiveRemove one; shared links break
send_routing_formyesSend by email or SMS, or mint a link
list_form_recipientsWho got it, who answered
list_data_fieldsReusable fields across forms
create_data_fieldyesAdd one

CRM

ToolWrites?Purpose
search_contactsFind a contact before creating a duplicate
get_contactFull record, by contactId or by attendeeId from a booking
create_contactyesAdd a contact
update_contactyesEdit a contact
bulk_create_contactsyesImport many at once (3 calls per min)
delete_contactdestructiveRemove a contact and its form answers

Mira, the website assistant

Everything needed to take a website from "no assistant" to a live one that answers from the company's own pages and books meetings.

ToolWrites?Purpose
get_setup_statusThe launch checklist: what exists, what's missing, the next move
get_mira_settingsThe whole assistant config — read before changing it
update_mira_settingsdestructiveChange it; returns the previous settings so you can put them back
restore_mira_settingsdestructiveRestore a snapshot taken from an earlier update
propose_conversion_setupRead a crawled site and propose an assistant, qualification and booking setup
create_qualification_formyesTurn proposed questions into a real, editable routing form
run_test_driveScripted visitors talk to the saved assistant; verdicts + transcripts back
get_mira_widget_embedThe public key, the embed snippet, and a preview URL
verify_widget_installFetch a page of the customer's site and confirm it serves THEIR widget
answer_visitor_questionyesTeach the assistant an answer it was missing
get_conversation_insightsWhat visitors asked and where the assistant had no answer

Knowledge base

ToolWrites?Purpose
crawl_company_websiteyesIngest a website so the assistant can answer from it
get_crawl_statusProgress of a running crawl
list_knowledge_documentsWhat has been ingested
delete_knowledge_documentdestructiveRemove a document; the assistant stops citing it
search_company_knowledgeRetrieve the passages a question would be answered from

Webhooks

ToolWrites?Purpose
list_webhooksEndpoints in use (max 6 per company)
create_webhookyesRegister an HTTPS endpoint
update_webhookyesChange URL or events
delete_webhookdestructiveRemove one; events stop immediately

Writes carry readOnlyHint: false, and everything marked destructive above carries destructiveHint: true, so hosts can require confirmation before an agent removes something a human would miss.

What the tools do for you

The API asks for things a model has no way to know. Rather than describing that boilerplate in a docstring and hoping, the tools supply it:

  • book_appointment builds the nested attendee object, defaults receiveReminders and the required empty notes, and refuses a booking with no name rather than writing a blank one into the invitation.
  • get_availability and book_appointment resolve which hosts to compute for. The API rejects both with Expected hostIds or queueId before it even loads the meeting type, and a model only ever has a meetingTypeId.
  • create_meeting_type fills the six required-but-irrelevant meetingInfo fields (customChannelName, connectChannelName, an empty confirmationButton, …) that reject the whole request when missing. Anything the schema does not name goes through advanced.
  • list_appointments supplies the required page and pageSize, which the API has no defaults for.

Development

bash
npm test          # vitestnpm run build     # tsc -> dist

The tests assert the wire format, not just the tool list: which path each tool calls, and the exact body shape the API's DTOs require. That is deliberate. 0.1.x shipped five tools that could never succeed — wrong paths, wrong query keys, a flat body where BookingDto wants a nested attendee — and every test passed, because they only ever checked that the tools existed. Adding or changing a tool means pinning its request against the route in apps/api.

来源:README.md,提交 c65818f

工具

0
该服务器需要登录,因此 SourceWeft 无法在没有账号的情况下读取其工具,也未收录。已连接账号所能看到的内容可能因账号及其权限而异。

版本历史

1
  1. v0.6.5最新Sep 16, 2026

评分

已满足适用检查项的 85%

该评分衡量此收录条目的完整程度,依据注册中心条目、端点与公开来源计算得出。它不是对服务器本身的评价,也不表示服务器安全或当前可用:可连通性是带日期的检查结果,评分也不包含安装量或用户评价。

  • 近 30 天内可连通必需25 分
  • 已声明认证方式必需10 分
  • 已列出工具15 分

    请让服务器在无凭据时响应 tools/list,或发布可在沙箱中无凭据启动的软件包。

  • 描述必需15 分
  • 图标10 分
  • 文档15 分
  • 许可证10 分