Server data from the Official MCP Registry
MCP server for Argo RPG Platform — connects AI assistants to campaign data via OAuth2
MCP server for Argo RPG Platform — connects AI assistants to campaign data via OAuth2
Remote endpoints: streamable-http: https://mcp.argo.games/mcp
The Argo MCP server demonstrates solid security fundamentals with OAuth2 authentication, proper token handling via environment variables, and comprehensive input validation via Zod schemas. Code quality is generally high with good error handling and no detected malicious patterns. Minor findings include broad exception handling in error paths, lack of request/response logging for debugging, and some verbose repetitive code, but these are low-severity quality issues that do not materially impact security. Permissions align well with the server's purpose of campaign management and guild coordination. Supply chain analysis found 4 known vulnerabilities in dependencies (1 critical, 3 high severity). Package verification found 1 issue.
3 files analyzed · 9 issues found
Security scores are indicators to help you make informed decisions, not guarantees. Always review permissions before connecting any MCP server.
This plugin requests these system permissions. Most are normal for its category.
Set these up before or after installing:
Environment variable: OAUTH_TOKEN
Environment variable: REFRESH_TOKEN
Environment variable: ARGO_API_BASE
Available as Local & Remote
This plugin can run on your machine or connect to a hosted endpoint. during install.
From the project's GitHub README.
Connects AI assistants to your Argo campaigns via the Model Context Protocol. Once configured, your AI assistant can read and write campaign lore, look up character details, and interact with Argo data directly from the chat interface.
Supported clients: Claude Code, Claude Desktop, OpenAI Codex, and any MCP-compatible host.
There are three supported ways to use the Argo MCP server. Pick the one that matches your client.
Use the hosted endpoint — do not install the npx package. Add this MCP server URL to ChatGPT:
https://mcp.argo.games/mcp
ChatGPT will walk you through OAuth on first connect via dynamic client registration.
Sign in once on the machine that runs the MCP client:
npx -y argo-mcp auth login
The command prints the consent URL, opens nothing, and asks you to paste the access token (and optionally the refresh token) from the consent page. Tokens are saved locally:
%APPDATA%\argo-mcp\tokens.json~/Library/Application Support/argo-mcp/tokens.json${XDG_CONFIG_HOME:-~/.config}/argo-mcp/tokens.jsonThen configure the MCP server with no env vars:
{
"mcpServers": {
"argo": { "command": "npx", "args": ["-y", "argo-mcp"] }
}
}
Other auth commands:
npx -y argo-mcp auth status # show whether you are signed in
npx -y argo-mcp auth logout # forget locally stored tokens
Local stdio mode does not use OAuth Dynamic Client Registration. DCR is only used by the hosted HTTP server at
https://mcp.argo.games.
For CI, Docker, or anyone who prefers explicit env config, you can skip auth login and pass tokens directly. OAUTH_TOKEN always wins over the local token store.
{
"mcpServers": {
"argo": {
"command": "npx",
"args": ["-y", "argo-mcp"],
"env": {
"OAUTH_TOKEN": "<your-access-token>",
"REFRESH_TOKEN": "<your-refresh-token>"
}
}
}
}
git clone https://github.com/Argo-RPG-Platform/MCP.git argo-mcp
cd argo-mcp
npm install
npm run build
The MCP server authenticates with Argo using an OAuth2 access token tied to a specific set of campaigns. Tokens are obtained through the Argo consent flow:
OAUTH_TOKENREFRESH_TOKEN (recommended; enables automatic renewal when the access token expires after ~1 hour)Treat both tokens like passwords. Revoke them at any time from the campaign's integrations page.
Add the server with the CLI:
claude mcp add argo \
--command node \
--args /absolute/path/to/argo-mcp/dist/index.js \
--env OAUTH_TOKEN=<your-access-token> \
--env REFRESH_TOKEN=<your-refresh-token>
Or add it manually to your project's .claude/settings.json:
{
"mcpServers": {
"argo": {
"command": "node",
"args": ["/absolute/path/to/argo-mcp/dist/index.js"],
"env": {
"OAUTH_TOKEN": "<your-access-token>",
"REFRESH_TOKEN": "<your-refresh-token>"
}
}
}
}
Edit your Claude Desktop config file:
~/Library/Application Support/Claude/claude_desktop_config.json%APPDATA%\Claude\claude_desktop_config.json{
"mcpServers": {
"argo": {
"command": "node",
"args": ["/absolute/path/to/argo-mcp/dist/index.js"],
"env": {
"OAUTH_TOKEN": "<your-access-token>",
"REFRESH_TOKEN": "<your-refresh-token>"
}
}
}
}
Restart Claude Desktop after saving.
Add the server to your Codex MCP configuration:
{
"mcpServers": {
"argo": {
"command": "node",
"args": ["/absolute/path/to/argo-mcp/dist/index.js"],
"env": {
"OAUTH_TOKEN": "<your-access-token>",
"REFRESH_TOKEN": "<your-refresh-token>"
}
}
}
}
For the hosted ChatGPT app surface, this repo exposes OAuth discovery, dynamic client registration, and domain verification endpoints on the MCP domain. The submission checklist and required env vars are in CHATGPT_APP_SUBMISSION.md.
.env file (local dev)Create a .env file in the argo-mcp directory:
OAUTH_TOKEN=<your-access-token>
REFRESH_TOKEN=<your-refresh-token>
Then run directly:
npm run dev # hot-reload via tsx
# or
npm start # compiled dist/
This server exposes tools across campaigns, mnemons, sessions, guilds, friends, invites, and the Argo community forum.
list_campaigns (campaign.read) lists accessible campaigns and their access levelget_campaign (campaign.read) retrieves campaign detailscreate_campaign (campaign.create) creates a new campaignupdate_campaign (campaign.write) updates campaign name or descriptionlist_co_gms (campaign.read) lists assistant GMsadd_co_gm (campaign.write) adds an assistant GMremove_co_gm (campaign.write) removes an assistant GMdescribe_mnemon_types lists supported mnemon types, relationship labels, and content-block ruleslist_mnemons (campaign.read) lists mnemon entries for a campaignget_mnemon (campaign.read) retrieves a mnemon entry in fulllist_mnemon_relationships (campaign.read) lists linked entries and relationship edgescreate_*_mnemons (campaign.write) creates typed mnemon entries for NPC, Location, Quest, Lore, Archive, Journal, SessionSummary, Player, and Custom entriesupdate_*_mnemons (campaign.write) updates typed/meta fields for those mnemon entry typesupdate_mnemons_content (campaign.write) edits mnemon content blockscreate_mnemon_relationship (campaign.write) creates a relationship between entriesdelete_mnemon_relationship (campaign.write) deletes a relationship by IDcreate_session (campaign.write) schedules a campaign sessionlist_sessions (campaign.read) lists sessions for a campaign and monthget_session (campaign.read) retrieves a single sessionupdate_session (campaign.write) updates a session's schedule or textlist_guilds (guild.read) lists guilds the current user belongs toget_guild (guild.read) retrieves guild detailslist_guild_members (guild.read) lists guild membersadd_campaign_to_guild (guild.write) links a campaign to a guildinvite_guild_member (guild.admin) invites a guild memberremove_guild_member (guild.admin) removes a guild memberset_guild_member_role (guild.admin) changes a guild member's roleadd_guild_calendar_event (guild.admin) adds a guild calendar eventlist_friends (friends.read) lists accepted friendslist_sent_friend_requests (friends.read) lists outgoing pending requestslist_received_friend_requests (friends.read) lists incoming pending requestssend_friend_request (friends.write) sends a friend requestaccept_friend_request (friends.write) accepts a requestreject_friend_request (friends.write) rejects a requestcancel_friend_request (friends.write) cancels a sent requestinvite_user_by_email (invite.write) sends Argo invitation emailsforum_list_categories (forum.read) lists forum categoriesforum_list_topics (forum.read) lists topics in a categoryforum_get_latest_topics (forum.read) lists recent forum activityforum_read_topic (forum.read) reads a topic threadforum_search (forum.read) searches forum contentforum_get_user_posts (forum.read) lists the current user's topicsforum_get_notifications (forum.read) lists the current user's notificationsforum_create_topic (forum.write) creates a new topic on community.argo.gamesforum_reply (forum.write) replies to an existing topic on community.argo.gamesMany campaign-scoped tools accept campaignId. You can find a campaign's ID from the Argo campaign URL or by asking the GM.
The access token expires after approximately one hour. If REFRESH_TOKEN is configured, the server automatically fetches a new access token on the first request that returns a 401 and retries transparently — no action required.
If no refresh token is set and the access token expires, the tool will return:
Token expired — re-consent at https://app.argo.games/oauth2/mcp-connect
Re-run the consent flow at that URL to get fresh tokens.
To disconnect the AI assistant from a campaign, revoke the grant from the campaign's integrations page in the Argo WebApp. The access token and refresh token will both become invalid immediately.
| Variable | Required | Description |
|---|---|---|
OAUTH_TOKEN | If not signed in via auth login | Hydra access token from the consent flow |
REFRESH_TOKEN | Recommended | Hydra refresh token; enables automatic renewal |
ARGO_API_BASE | No | Override the API base URL (default: https://api.argo.games) |
ARGO_MCP_TOKEN_PATH | No | Override the local token file path used by auth login |
MIT — see LICENSE.
Be the first to review this server!
by Modelcontextprotocol · Developer Tools
Read, search, and manipulate Git repositories programmatically
by Toleno · Developer Tools
Toleno Network MCP Server — Manage your Toleno mining account with Claude AI using natural language.
by mcp-marketplace · Developer Tools
Create, build, and publish Python MCP servers to PyPI — conversationally.