groupme-mcp-server
This server gives an AI assistant agentic tools to read and interact with a single GroupMe account's conversations.
List conversations – merge groups and DMs into one recency-sorted inbox with previews, member counts, and ids for chaining.
Read messages – page through a group or DM history, oldest first, with a cursor (
before_id/next_before_id) and optional concise or detailed formats.Get conversation context – fetch a group's metadata, member list, and recent messages in one call.
Search messages – search a conversation's history client-side by text and/or sender name, with honest reporting of scan limits.
Get highlights – see a group's most-liked messages and member summaries for a day, week, or month.
Send messages – post to a group or DM, optionally as a reply, optionally with a GroupMe-hosted image.
React to messages – like or unlike a specific message idempotently.
Provides tools for interacting with GroupMe, enabling listing conversations, reading and searching messages, fetching highlights, sending messages, and reacting to messages as the configured GroupMe account.
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@groupme-mcp-serversearch for "weekend plans" in my family group"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
groupme-mcp-server
An MCP server for GroupMe, built with FastMCP.
It is a set of agentic tools, not an endpoint wrapper: instead of mirroring the GroupMe API v3 route-for-route, each tool does one job an assistant actually needs — merging groups and DMs into a single inbox, paginating history with cursors, searching client-side because GroupMe has no search endpoint, and reporting honestly when a result is truncated.
Status: early. Read, search/highlights, and the core write tools (sending messages, likes) are implemented; image upload is not yet.
Tools
Tool | What it does |
| Merge groups and DMs into one recency-sorted list with last-message previews. |
| Read one group or DM conversation, oldest first, with a |
| One group's metadata, member list, and recent messages in a single call. |
| Search a conversation's history client-side (GroupMe has no search API), with honest scan accounting. |
| A group's top-liked messages for a day/week/month plus a member summary. |
| Post to a group or DM, optionally as a reply or with a GroupMe-hosted image. |
| Like or unlike one message (ids from |
The read tools accept response_format: "concise" (default, human-readable)
or "detailed" (full ids and metadata).
Related MCP server: Instagram DMs MCP
Connecting to the hosted server
The server is deployed on Prefect Horizon at:
https://groupme.fastmcp.app/mcpThe deployment is protected by Horizon's built-in auth: clients sign in via OAuth, and only users the deployment owner has authorized can connect — unauthenticated requests are rejected. Note that this is a single-tenant deployment (see Security): every authorized client acts as the one GroupMe account whose token is configured on the server.
Running locally
The package runs as a stdio MCP server. Get a GroupMe access token from https://dev.groupme.com (sign in and copy your access token), then:
GROUPME_ACCESS_TOKEN=... uvx groupme-mcp-serverOr configure an MCP client to launch it:
{
"mcpServers": {
"groupme": {
"command": "uvx",
"args": ["groupme-mcp-server"],
"env": {
"GROUPME_ACCESS_TOKEN": "your-token-from-dev.groupme.com"
}
}
}
}Configuration
Everything is configured through environment variables (GROUPME_* may also
come from a local .env file — see .env.example).
Variable | Default | Description |
| (unset) | GroupMe API token from https://dev.groupme.com. Optional at startup; required when a tool calls the API. |
|
| Verbosity of the server's own loggers: |
|
| GroupMe REST API base URL (override mainly for testing). |
|
| GroupMe image-upload service base URL. Reserved: unused until image upload is implemented. |
| (unset) | OTLP/HTTP collector endpoint. Setting it turns tracing on. |
| (unset) | Extra headers for the OTLP exporter (e.g. |
|
| The |
| (unset) | Set to |
|
| Verbosity of FastMCP's own |
Security
Single-tenant by design. The server holds exactly one GroupMe token and every tool acts as that token's owner — reading their conversations, posting as them, liking as them. Anyone allowed to connect (locally, or through Horizon's auth on the hosted deployment) gets that full identity; there is no per-client GroupMe account mapping.
The token never crosses the MCP boundary. Clients never send or receive it: the token lives server-side, goes to GroupMe only as the
X-Access-Tokenrequest header (never in URLs), is excluded from tool output and error messages, and is registered for redaction if OTel header capture is enabled.Hosted-deployment caveat. On Horizon, tool requests and responses pass through Prefect's infrastructure and may appear in its request/payload logs. Message content read or written through the hosted server is visible to whoever operates the deployment; run the server locally if that is not acceptable.
Report vulnerabilities through private vulnerability reporting, not public issues — see SECURITY.md.
Observability
Logs are structured single lines on stderr (stdout would corrupt the stdio transport), each carrying the current OTel
trace_id/span_idwhen a span is active.GROUPME_LOG_LEVELcontrols the server's own loggers.Traces are opt-in: when
OTEL_EXPORTER_OTLP_ENDPOINTis set (andOTEL_SDK_DISABLEDis not truthy), the server installs an OTLP/HTTP span exporter. FastMCP emits a span for everytools/call, and outbound GroupMe HTTP requests get client spans via instrumentedhttpx2transports — without an endpoint everything no-ops.
Development
Requires uv and Python 3.13+.
git clone https://github.com/oddrationale/groupme-mcp-server.git
cd groupme-mcp-server
uv sync --all-groups
uv run lefthook install # install the git hooksCommon tasks:
Command | What it does |
| Format. |
| Lint and autofix. |
| Type check. |
| Run tests. Fails below 100% coverage. |
| Run a subset without the coverage gate. |
| Opt-in live/e2e suites (see |
| See what Horizon sees. |
Coverage is enforced at 100% (branch coverage included). If a line is
genuinely untestable, exclude it deliberately with # pragma: no cover and say
why in the PR — do not lower the threshold.
Deployment
The hosted server is deployed on Prefect Horizon, which builds directly from this repository via its GitHub App.
Entrypoint:
src/groupme_mcp_server/server.py:mcpDependencies: installed with
uv sync --frozen --no-dev, souv.lockmust be committed and current or the build failsEnvironment variables: registered in the Horizon UI (
GROUPME_ACCESS_TOKENat minimum)Auth: Horizon's built-in OAuth — clients must present a bearer token
The production target tracks main and deploys only after CI passes; every
pull request gets its own preview deployment. There is no deploy step in GitHub
Actions — CI gates quality and security, Horizon does the shipping.
Contributing
See CONTRIBUTING.md.
License
MIT © Dariel Dato-on
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Servers
- AlicenseAqualityDmaintenanceEnables AI models to interact with messages from various messaging platforms (Mobile, Mail, WhatsApp, LinkedIn, Slack, Twitter, Telegram, Instagram, Messenger) through a standardized interface.316MIT
- FlicenseNot gradedqualityDmaintenanceEnables AI assistants to read, send, and manage Instagram direct messages, including viewing conversations, sending DMs to users, reacting to messages, and searching for users by username.10
- AlicenseNot gradedqualityCmaintenanceEnables AI assistants to read, search, and send iMessages with features like contact name resolution, session grouping, and attachment listing. It provides intent-aligned tools to efficiently navigate conversation history and manage messages through natural language queries.5MIT
- FlicenseBqualityBmaintenanceAn MCP server that integrates with the GroupMe API v3 to allow AI assistants to manage groups, messages, members, and bots. It enables comprehensive interaction with the GroupMe platform, including sending direct messages, liking content, and managing user blocks.29
Related MCP Connectors
Instagram for AI agents: publish, read comments and DMs, insights, and engage from your account.
Instagram, WhatsApp and Messenger DMs through official Meta Business APIs.
AI email inbox and sending tools with attachments, search, live events, and webhooks.
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/oddrationale/groupme-mcp-server'
If you have feedback or need assistance with the MCP directory API, please join our Discord server