# io.github.Argo-RPG-Platform/argo-mcp (remote · mcp.argo.games)

MCP server for Argo RPG Platform — connects AI assistants to campaign data via OAuth2

- Trust score: 77/100 (medium)
- Change this week: +7
- Registry status: active
- Liveness: live
- Owner verified: no
- Last scored: 2026-08-03

## Components

- remote · `mcp.argo.games`: 77/100 (this document), [markdown](https://verifymcp.io/servers/argo-rpg-platform-argo-mcp/mcp.md), [page](https://verifymcp.io/servers/argo-rpg-platform-argo-mcp/mcp)
- npm · `argo-mcp`: 35/100, [markdown](https://verifymcp.io/servers/argo-rpg-platform-argo-mcp/argo-mcp.md), [page](https://verifymcp.io/servers/argo-rpg-platform-argo-mcp/argo-mcp)

## Channel facts

- Endpoint: `https://mcp.argo.games/mcp`
- Transports: `streamable-http`
- Auth: `none`
- Version: `1.0.3`

## Trust breakdown

How this component scores in each security and reliability category. Every signal is checked automatically against the live server, and we only credit what we can confirm. Scores are 0–100 per category. Scoring method: https://verifymcp.io/docs/scoring (what has changed: https://verifymcp.io/docs/scoring/changelog)

Scored 2026-08-03.

- **Endpoint Security**: 89/100
  - The endpoint's TLS certificate is valid, in date, and uses a strong key.
  - Authorisation is enforced on tool calls, advertised via RFC 9728 protected-resource metadata. Discovery is public, which costs nothing: no tool can be invoked without a token.
  - HTTPS is enforced; there's no plaintext access path.
  - HSTS check failed: the Strict-Transport-Security header is absent.
  - DNSSEC check failed: this domain isn't protected by DNSSEC.
  - The authorisation server offers only Dynamic Client Registration (RFC 7591), which MCP 2026-07-28 deprecated in favour of Client ID Metadata Documents.
- **Transport & Reachability**: 100/100
  - Verified streamable-http transport via a live MCP handshake.
- **Schema Quality & AI Usability**: 70/100
  - AI-judged instruction clarity (good).
  - Tool/resource definitions use about 4686 tokens (~75/item across 62 items; 62 tools + 0 resources), lean.
  - Usage-examples check failed: none of the tools include examples.
- **Stability & Change Management**: 25/100
  - Stability check failed: schema churn in the 8 days we've observed: 1 tool removals, 0 breaking changes, 0 auth/transport breaks, 0 additions.
- **Tool Coverage**: 88/100
  - 100% of tools have a non-trivial description (not blank, and not just the tool's name).
  - 58% of tool parameters carry a description.
  - Structured output schemas are declared (100% of tools); any adoption earns full credit.
- **Capabilities**: 100/100
  - Implements a supported MCP spec version (2025-11-25); the latest is 2026-07-28.

## Install

### Claude

```bash
claude mcp add --transport http argo-rpg-platform-argo-mcp https://mcp.argo.games/mcp
```

### Codex

```toml
[mcp_servers.argo-rpg-platform-argo-mcp]
url = "https://mcp.argo.games/mcp"
```

### opencode

```json
{
  "$schema": "https://opencode.ai/config.json",
  "mcp": {
    "argo-rpg-platform-argo-mcp": {
      "type": "remote",
      "url": "https://mcp.argo.games/mcp",
      "enabled": true
    }
  }
}
```

### OpenClaw

```bash
openclaw mcp add argo-rpg-platform-argo-mcp --url https://mcp.argo.games/mcp --transport streamable-http
```

### Hermes

```yaml
mcp_servers:
  argo-rpg-platform-argo-mcp:
    url: "https://mcp.argo.games/mcp"
```

### Other

```json
{
  "mcpServers": {
    "argo-rpg-platform-argo-mcp": {
      "type": "http",
      "url": "https://mcp.argo.games/mcp"
    }
  }
}
```

The mcpServers block is a cross-client convention. Remote transports vary, so check your client's docs.

## Changelog

Every change recorded for this component, newest first. Days that predate change tracking, or that we cannot explain, say so: "we were watching and nothing happened" and "we were not watching" are different claims.

### 2026-08-02 (score 77, 0)

- [security regression] Stability: 0.20 → fail
- [security regression] A breaking change shipped without a version bump: still 1.1.0
- [security regression] Tool “invite_user_by_email” was removed
- [cosmetic] Tool “reject_friend_request” changed its title: Reject friend request
- [cosmetic] Tool “create_custom_mnemons” changed its title: Create custom mnemons
- [cosmetic] Tool “create_journal_mnemons” changed its title: Create journal mnemons
- [cosmetic] Tool “create_location_mnemons” changed its title: Create location mnemons
- [cosmetic] Tool “create_lore_mnemons” changed its title: Create lore mnemons
- [cosmetic] Tool “create_mnemon_relationship” changed its title: Create mnemon relationship
- [cosmetic] Tool “create_npc_mnemons” changed its title: Create NPC mnemons
- [cosmetic] Tool “create_player_mnemons” changed its title: Create player mnemons
- [cosmetic] Tool “create_quest_mnemons” changed its title: Create quest mnemons
- [cosmetic] Tool “create_session” changed its title: Schedule session
- [cosmetic] Tool “create_session_summary_mnemons” changed its title: Create session summary mnemons
- [cosmetic] Tool “delete_mnemon” changed its title: Delete mnemon
- [cosmetic] Tool “delete_mnemon_relationship” changed its title: Delete mnemon relationship
- [cosmetic] Tool “describe_mnemon_types” changed its title: Describe mnemon types
- [cosmetic] Tool “forum_create_topic” changed its title: Create forum topic
- [cosmetic] Tool “forum_get_latest_topics” changed its title: Get latest forum topics
- [cosmetic] Tool “forum_get_notifications” changed its title: Get forum notifications
- [cosmetic] Tool “forum_get_user_posts” changed its title: List my forum topics
- [cosmetic] Tool “forum_list_categories” changed its title: List forum categories
- [cosmetic] Tool “forum_list_topics” changed its title: List forum topics
- [cosmetic] Tool “forum_read_topic” changed its title: Read forum topic
- [cosmetic] Tool “forum_reply” changed its title: Reply to forum topic
- [cosmetic] Tool “forum_search” changed its title: Search forum
- [cosmetic] Tool “get_campaign” changed its title: Get campaign
- [cosmetic] Tool “get_guild” changed its title: Get guild
- [cosmetic] Tool “get_mnemon” changed its title: Get mnemon
- [cosmetic] Tool “get_session” changed its title: Get session
- [cosmetic] Tool “invite_guild_member” changed its title: Invite guild member
- [cosmetic] Tool “list_campaigns” changed its title: List campaigns
- [cosmetic] Tool “list_co_gms” changed its title: List co-GMs
- [cosmetic] Tool “list_friends” changed its title: List friends
- [cosmetic] Tool “list_guild_members” changed its title: List guild members
- [cosmetic] Tool “list_guilds” changed its title: List guilds
- [cosmetic] Tool “list_mnemon_relationships” changed its title: List mnemon relationships
- [cosmetic] Tool “list_mnemons” changed its title: List mnemons
- [cosmetic] Tool “list_received_friend_requests” changed its title: List received friend requests
- [cosmetic] Tool “list_sent_friend_requests” changed its title: List sent friend requests
- [cosmetic] Tool “list_sessions” changed its title: List sessions
- [cosmetic] Tool “remove_co_gm” changed its title: Remove co-GM
- [cosmetic] Tool “remove_guild_member” changed its title: Remove guild member
- [cosmetic] Tool “search_mnemons” changed its title: Search mnemons
- [cosmetic] Tool “send_friend_request” changed its title: Send friend request
- [cosmetic] Tool “set_guild_member_role” changed its title: Set guild member role
- [cosmetic] Tool “update_archive_mnemons” changed its title: Update archive mnemons
- [cosmetic] Tool “update_campaign” changed its title: Update campaign
- [cosmetic] Tool “update_custom_mnemons” changed its title: Update custom mnemons
- [cosmetic] Tool “update_journal_mnemons” changed its title: Update journal mnemons
- [cosmetic] Tool “update_location_mnemons” changed its title: Update location mnemons
- [cosmetic] Tool “update_lore_mnemons” changed its title: Update lore mnemons
- [cosmetic] Tool “update_mnemons_content” changed its title: Update mnemon content
- [cosmetic] Tool “update_npc_mnemons” changed its title: Update NPC mnemons
- [cosmetic] Tool “update_player_mnemons” changed its title: Update player mnemons
- [cosmetic] Tool “update_quest_mnemons” changed its title: Update quest mnemons
- [cosmetic] Tool “update_session” changed its title: Update session
- [cosmetic] Tool “update_session_summary_mnemons” changed its title: Update session summary mnemons
- [cosmetic] Tool “accept_friend_request” changed its title: Accept friend request
- [cosmetic] Tool “add_campaign_to_guild” changed its title: Add campaign to guild
- [cosmetic] Tool “add_co_gm” changed its title: Add co-GM
- [cosmetic] Tool “add_guild_calendar_event” changed its title: Add guild calendar event
- [cosmetic] Tool “cancel_friend_request” changed its title: Cancel friend request
- [cosmetic] Tool “create_archive_mnemons” changed its title: Create archive mnemons
- [cosmetic] Tool “create_campaign” changed its title: Create campaign

### 2026-07-31 (score 77, +6)

- [functional] We updated how we score, so this day's move reflects our rubric, not a change to the server

### 2026-07-30 (score 71, 0)

- [functional] We updated how we score, so this day's move reflects our rubric, not a change to the server

### 2026-07-28 (score 71, +1)

No change was recorded against any check on this day. Stability & Change Management went from 3 to 7. That category is still filling its 30-day observation window: 1 days of observed history at the previous scan, 2 at this one. The score rises as the window fills, whether or not the server changes.

### 2026-07-27 (score 70, +1)

- [functional] We updated how we score, so this day's move reflects our rubric, not a change to the server

### 2026-07-26 (score 69)

First indexed and scored.

## MCP tools (62)

### `list_campaigns` (~125 tokens)

List campaigns

List all Argo campaigns the current grant token has access to, including the access level ("read" or "read+write") for each. Call this first when the user has not provided a campaign ID. Each entry includes both `campaignName` and `id` (shown inline as `[id: …]` and also in structuredContent.idMap). Use the `id` verbatim for any subsequent tool call that takes a `campaignId`. In prose to the user, refer to campaigns by `campaignName`; do not print the raw `id` unless asked.

Output parameters:

- `campaigns` (array)
- `idMap` (object)

### `get_campaign` (~42 tokens)

Get campaign

Retrieve details of an Argo campaign (name, description, rule system, co-GMs).

Input parameters:

- `campaignId` (string, required): The ID of the campaign to retrieve.

Output parameters:

- `campaignDescription` (string|null)
- `campaignName` (string)
- `coGameMasterIds`
- `gameMasterId` (string)
- `gameSystemSlug` (string|null)
- `id` (string)
- `ruleSystem` (string|null)

### `create_campaign` (~169 tokens)

Create campaign

Create a new Argo campaign. The current user becomes GM and the calling token gains read+write access to the new campaign immediately (no re-consent needed). Requires the campaign.create OAuth scope, granted at consent time.

Input parameters:

- `campaignName` (string, required): Display name of the campaign.
- `description` (string, required): Short description of the campaign's setting, tone, and premise.
- `gameSystemSlug` (string): Optional explicit slug for the public URL (e.g. 'dnd5e'). If omitted, the server derives one from ruleSystem.
- `ruleSystem` (string, required): Rule system the campaign uses. E.g. 'Dungeons & Dragons 5e', 'Pathfinder 2e', 'Forbidden Lands'. Free-form; the WebAPI derives the slug from this.

Output parameters:

- `accessLevel` (string|null)
- `campaignDescription` (string|null)
- `campaignName` (string)
- `coGameMasterIds`
- `gameMasterId` (string)
- `gameSystemSlug` (string|null)
- `id` (string)
- `ruleSystem` (string|null)

### `update_campaign` (~118 tokens)

Update campaign

Update a campaign's display name and/or description. Both fields optional — only supplied fields are changed; pass an empty string to clear the description. GMs and co-GMs can call this; rule-system swaps remain WebApp-only.

Input parameters:

- `campaignDescription` (string): New description (setting, tone, premise). Omit to leave unchanged. Pass an empty string to clear the existing description.
- `campaignId` (string, required): ID of the campaign to update.
- `campaignName` (string): New display name. Omit to leave unchanged.

Output parameters:

- `campaignDescription` (string|null)
- `campaignName` (string)
- `coGameMasterIds`
- `gameMasterId` (string)
- `gameSystemSlug` (string|null)
- `id` (string)
- `ruleSystem` (string|null)

### `list_co_gms` (~34 tokens)

List co-GMs

List the assistant GMs (co-GMs) of a campaign.

Input parameters:

- `campaignId` (string, required): Campaign ID.

Output parameters:

- `items` (array)

### `add_co_gm` (~106 tokens)

Add co-GM

Send a user an assistant GM (co-GM) offer for a campaign. This does NOT add them immediately: the target must accept the offer before they become an assistant GM. Owner-only — the calling user must be the campaign's primary GM. Maximum 5 co-GMs per campaign.

Input parameters:

- `campaignId` (string, required): Campaign ID.
- `userId` (string, required): Argo user ID of the user to promote to co-GM. Must be an existing user.

Output parameters:

- `campaignDescription` (string|null)
- `campaignName` (string)
- `coGameMasterIds`
- `gameMasterId` (string)
- `gameSystemSlug` (string|null)
- `id` (string)
- `ruleSystem` (string|null)

### `remove_co_gm` (~53 tokens)

Remove co-GM

Remove a co-GM from a campaign. Owner-only or self-removal.

Input parameters:

- `campaignId` (string, required): Campaign ID.
- `userId` (string, required): User ID of the co-GM to remove.

Output parameters:

- `campaignId` (string)
- `success` (boolean)
- `userId` (string)

### `describe_mnemon_types` (~76 tokens)

Describe mnemon types

Returns a catalog of all mnemon types, their type-specific fields, and the full valid relationship matrix (sourceType → label → targetType). Call this before create_mnemon or create_mnemon_relationship when you are unsure which type or label to use. NPC subtype is strictly FACTION | INDIVIDUAL.

Output parameters:

- `blockOps` (object)
- `commonFields` (array)
- `idReferences` (string)
- `markdownFormat` (object)
- `questBody` (object)
- `relationshipLabels` (array)
- `relationships` (array)
- `types` (array)

### `list_mnemons` (~252 tokens)

List mnemons

List mnemon (lore/memory) entries for an Argo campaign. Optional filters: `title` (case-insensitive substring on entry title only) and `type` (e.g. NPC, Location, Quest). To find entries by what they CONTAIN, use search_mnemons instead. Returns up to `limit` entries (default 100); when `hasMore` is true, call again with `offset` = the returned `nextOffset` to fetch the next page. Each entry includes both `title` and `entryId` (shown inline as `[id: …]` and in structuredContent.idMap). Use the `entryId` verbatim for any tool that takes one; refer to entries by `title` in prose to the user.

Input parameters:

- `campaignId` (string, required): ID of the campaign.
- `limit` (integer): Maximum entries to return (default 100).
- `offset` (integer): Entries to skip. Pass the nextOffset from the previous call to fetch the next page.
- `title` (string): Case-insensitive substring filter on title.
- `type` (string): Mnemon type filter (NPC, Location, Quest, …).

Output parameters:

- `entries` (array)
- `hasMore` (boolean)
- `idMap` (object)
- `nextOffset` (number)

### `search_mnemons` (~210 tokens)

Search mnemons

Full-text search across mnemon titles, tags, and body content (case-insensitive substring). Prefer this over list_mnemons when looking for entries by what they contain — e.g. "what do we know about the Red Oracle?". Each hit reports which fields matched (title/tags/content) and up to 3 body snippets; a snippet's blockId is the same block id get_mnemon returns, so you can target the matched block directly in update_mnemons_content. Only content visible to the current user is searched. Returns at most `limit` hits (default 20, max 50) plus `hasMore`.

Input parameters:

- `campaignId` (string, required): ID of the campaign.
- `limit` (integer): Maximum results (default 20).
- `query` (string, required): Text to find (case-insensitive substring) in mnemon titles, tags, and body content.
- `type` (string): Mnemon type filter (NPC, Location, Quest, …).

Output parameters:

- `hasMore` (boolean)
- `idMap` (object)
- `results` (array)

### `get_mnemon` (~56 tokens)

Get mnemon

Get the full details of a specific mnemon entry (title, blocks, type properties).

Input parameters:

- `campaignId` (string, required): Campaign ID.
- `entryId` (string, required): Mnemon entry ID (hex) or exact title.

Output parameters:

- `blocks` (array)
- `entryId` (string)
- `title` (string)
- `type` (string)
- `typeProperties` (object)

### `list_mnemon_relationships` (~79 tokens)

List mnemon relationships

List the relationships of a mnemon entry, split into outgoing edges, incoming edges, and a flat list of linked entries (entryId/title/type/relationshipTypes). Use this to find members of a faction, allies/enemies of an NPC, etc.

Input parameters:

- `campaignId` (string, required)
- `entryId` (string, required)

Output parameters:

- `incoming` (array)
- `linked` (array)
- `outgoing` (array)

### `create_npc_mnemons` (~95 tokens)

Create NPC mnemons

Create NPC mnemons (FACTION or INDIVIDUAL). npcType is REQUIRED on each item. Use memberNpcEntryIds (on FACTIONs) and affiliationEntryIds (on INDIVIDUALs) to wire membership; the server projects into MEMBER relationships. Players may not call this — GM/co-GM only.

Input parameters:

- `campaignId` (string, required)
- `items` (array, required)

Output parameters:

- `results` (array)

### `create_location_mnemons` (~74 tokens)

Create location mnemons

Create Location mnemons (places — cities, dungeons, taverns). Use create_mnemon_relationship with PARENT_OF to nest larger places under one another after creation. Players may not call this — GM/co-GM only.

Input parameters:

- `campaignId` (string, required)
- `items` (array, required)

Output parameters:

- `results` (array)

### `create_quest_mnemons` (~56 tokens)

Create quest mnemons

Create Quest mnemons. questStatus is one of active|completed|failed. Players may not call this — GM/co-GM only.

Input parameters:

- `campaignId` (string, required)
- `items` (array, required)

Output parameters:

- `results` (array)

### `create_lore_mnemons` (~54 tokens)

Create lore mnemons

Create Lore mnemons (world background, factions' beliefs, history). Players may not call this — GM/co-GM only.

Input parameters:

- `campaignId` (string, required)
- `items` (array, required)

Output parameters:

- `results` (array)

### `create_archive_mnemons` (~53 tokens)

Create archive mnemons

Create Archive mnemons (archived lore that is no longer current). Players may not call this — GM/co-GM only.

Input parameters:

- `campaignId` (string, required)
- `items` (array, required)

Output parameters:

- `results` (array)

### `create_journal_mnemons` (~51 tokens)

Create journal mnemons

Create Journal mnemons (log of in-world events). Players may not call this — GM/co-GM only.

Input parameters:

- `campaignId` (string, required)
- `items` (array, required)

Output parameters:

- `results` (array)

### `create_session_summary_mnemons` (~52 tokens)

Create session summary mnemons

Create SessionSummary mnemons (structured summaries of game sessions). Players may not call this — GM/co-GM only.

Input parameters:

- `campaignId` (string, required)
- `items` (array, required)

Output parameters:

- `results` (array)

### `create_player_mnemons` (~104 tokens)

Create player mnemons

Create Player mnemons (party root, character notes, party notes). For playerKind=CHARACTER, supply parentEntryId (the PARTY mnemon), partyId (CampaignParty.id), and characterId (SessionCharacter id) or the entry will be auto-detached. Players with campaign.write may call this for a party they belong to; GMs may call for any party.

Input parameters:

- `campaignId` (string, required)
- `items` (array, required)

Output parameters:

- `results` (array)

### `create_custom_mnemons` (~57 tokens)

Create custom mnemons

Create custom-typed mnemons (any free-form entry that doesn't fit the other types). Players may not call this — GM/co-GM only.

Input parameters:

- `campaignId` (string, required)
- `items` (array, required)

Output parameters:

- `results` (array)

### `update_npc_mnemons` (~83 tokens)

Update NPC mnemons

Update typed/meta fields of NPC mnemons (visibility, tags, npcType, faction membership, etc.). Does NOT modify content blocks — use update_mnemons_content for that. Set visibility=PUBLIC on multiple NPCs in a single call by listing them in items[].

Input parameters:

- `campaignId` (string, required)
- `items` (array, required)

Output parameters:

- `results` (array)

### `update_location_mnemons` (~36 tokens)

Update location mnemons

Update typed/meta fields of Location mnemons.

Input parameters:

- `campaignId` (string, required)
- `items` (array, required)

Output parameters:

- `results` (array)

### `update_quest_mnemons` (~45 tokens)

Update quest mnemons

Update typed/meta fields of Quest mnemons (status transitions, expiry, related entries).

Input parameters:

- `campaignId` (string, required)
- `items` (array, required)

Output parameters:

- `results` (array)

### `update_lore_mnemons` (~37 tokens)

Update lore mnemons

Update typed/meta fields of Lore mnemons.

Input parameters:

- `campaignId` (string, required)
- `items` (array, required)

Output parameters:

- `results` (array)

### `update_archive_mnemons` (~36 tokens)

Update archive mnemons

Update typed/meta fields of Archive mnemons.

Input parameters:

- `campaignId` (string, required)
- `items` (array, required)

Output parameters:

- `results` (array)

### `update_journal_mnemons` (~37 tokens)

Update journal mnemons

Update typed/meta fields of Journal mnemons.

Input parameters:

- `campaignId` (string, required)
- `items` (array, required)

Output parameters:

- `results` (array)

### `update_session_summary_mnemons` (~38 tokens)

Update session summary mnemons

Update typed/meta fields of SessionSummary mnemons.

Input parameters:

- `campaignId` (string, required)
- `items` (array, required)

Output parameters:

- `results` (array)

### `update_player_mnemons` (~36 tokens)

Update player mnemons

Update typed/meta fields of Player mnemons.

Input parameters:

- `campaignId` (string, required)
- `items` (array, required)

Output parameters:

- `results` (array)

### `update_custom_mnemons` (~38 tokens)

Update custom mnemons

Update typed/meta fields of Custom-typed mnemons.

Input parameters:

- `campaignId` (string, required)
- `items` (array, required)

Output parameters:

- `results` (array)

### `update_mnemons_content` (~237 tokens)

Update mnemon content

Edit the body content of one or more mnemon entries. Each item carries an entryId and an ordered list of ops (append, insertAfter, replace, remove) applied atomically per entry. Op content is authored as Markdown (headings, lists, quotes, code fences, bold/italic, links) — do NOT send HTML. Mentions: @[label](mnemon:<entryId>). Images: ![caption](asset:<assetId>@<campaignId>) — upload the asset first; inline base64 / data: URLs are not accepted. Node addressing: get body-node ids from get_mnemon, then target them in replace/remove/insertAfter. A single op's Markdown may produce several nodes; new nodes get fresh server-generated ids (replace keeps the original id on the first new node). On a bad op (missing blockId, unknown op, etc.) the whole entry's batch is rejected with the failedOpIndex; no partial mutation per entry. See describe_mnemon_types.blockOps for the full vocabulary.

Input parameters:

- `campaignId` (string, required)
- `items` (array, required)

Output parameters:

- `results` (array)

### `create_mnemon_relationship` (~331 tokens)

Create mnemon relationship

Create a relationship between two mnemon entries. All 14 labels: MEMBER (NPC ∈ Faction, bidirectional), ALLY (bidirectional), ENEMY (directional), RIVAL (directional), PARENT_OF (Location hierarchy — sourceEntryId is the outer/larger place, e.g. Region → City → District → Tavern), CONTAINS (Location → NPC present there), LOCATED_IN (NPC → Location; inverse of CONTAINS), HAS_SUBQUEST (Quest → subquest Quest), QUEST_RELATED_NPC (Quest → NPC), QUEST_RELATED_LOCATION (Quest → Location), SESSION_ATTENDEE_CHARACTER (SessionSummary → CHARACTER-kind Player), SESSION_ATTENDEE_NPC (SessionSummary → NPC), SESSION_FEATURED_QUEST (SessionSummary → Quest), SESSION_FEATURED_LOCATION (SessionSummary → Location). sourceEntryId is the 'from' side; targetEntryId is the 'to' side — direction matters. Call describe_mnemon_types for the full valid (sourceType, label, targetType) matrix. For faction membership prefer memberNpcEntryIds / affiliationEntryIds on the NPC itself; for quest links prefer subQuestEntryIds / relatedNpcEntryIds / relatedLocationEntryIds on the quest. Session-summary links have no array equivalent — the SESSION_* labels are the only way to set them.

Input parameters:

- `campaignId` (string, required)
- `color` (string)
- `direction` (string)
- `label` (string, required)
- `sourceEntryId` (string, required)
- `targetEntryId` (string, required)

Output parameters:

- `color` (string)
- `direction` (string)
- `label` (string)
- `relationshipId` (string)
- `sourceId` (string)
- `targetId` (string)

### `delete_mnemon_relationship` (~33 tokens)

Delete mnemon relationship

Delete a relationship by id.

Input parameters:

- `campaignId` (string, required)
- `relationshipId` (string, required)

Output parameters:

- `campaignId` (string)
- `relationshipId` (string)
- `success` (boolean)

### `delete_mnemon` (~81 tokens)

Delete mnemon

Permanently delete a mnemon entry and every relationship that touches it. GM-only on the backend. This cannot be undone — confirm with the user before calling. entryId accepts a hex id or an exact title.

Input parameters:

- `campaignId` (string, required): Campaign ID.
- `entryId` (string, required): Mnemon entry ID (hex) or exact title.

Output parameters:

- `campaignId` (string)
- `entryId` (string)
- `success` (boolean)

### `create_session` (~157 tokens)

Schedule session

Schedule a campaign session. Provide an ISO-8601 startAt; endAt is optional. Useful for laying out planned arcs or recurring play nights.

Input parameters:

- `campaignId` (string, required): Campaign ID.
- `description` (string): Optional session description / GM notes.
- `endAt` (string): Session end time as an ISO-8601 instant.
- `invitedUserIds` (array): User IDs to invite (must be active campaign members).
- `startAt` (string, required): Session start time as an ISO-8601 instant (e.g. '2026-06-01T19:00:00Z').
- `title` (string, required): Session title (e.g. 'Session 12: The Dragon's Lair').

Output parameters:

- `attendanceReplies`
- `campaignId` (string)
- `createdAt` (string|null)
- `createdByUserId` (string|null)
- `description` (string|null)
- `endAt` (string|null)
- `guildId` (string|null)
- `id` (string)
- `invitedPartyIds`
- `invitedUserIds`
- `startAt` (string)
- `title` (string)
- `updatedAt` (string|null)

### `list_sessions` (~64 tokens)

List sessions

List campaign sessions for a given month (defaults to the current month).

Input parameters:

- `campaignId` (string, required): Campaign ID.
- `month` (integer): Calendar month (1-12). Defaults to current month.
- `year` (integer): Calendar year. Defaults to current year.

Output parameters:

- `items` (array)

### `get_session` (~36 tokens)

Get session

Get details of a single campaign session.

Input parameters:

- `campaignId` (string, required): Campaign ID.
- `sessionId` (string, required): Session ID.

Output parameters:

- `attendanceReplies`
- `campaignId` (string)
- `createdAt` (string|null)
- `createdByUserId` (string|null)
- `description` (string|null)
- `endAt` (string|null)
- `guildId` (string|null)
- `id` (string)
- `invitedPartyIds`
- `invitedUserIds`
- `startAt` (string)
- `title` (string)
- `updatedAt` (string|null)

### `update_session` (~90 tokens)

Update session

Reschedule a campaign session or edit its title/description. All fields optional. Owner-only on the backend.

Input parameters:

- `campaignId` (string, required): Campaign ID.
- `description` (string)
- `endAt` (string): ISO-8601 instant.
- `sessionId` (string, required): Session ID.
- `startAt` (string): ISO-8601 instant.
- `title` (string)

Output parameters:

- `attendanceReplies`
- `campaignId` (string)
- `createdAt` (string|null)
- `createdByUserId` (string|null)
- `description` (string|null)
- `endAt` (string|null)
- `guildId` (string|null)
- `id` (string)
- `invitedPartyIds`
- `invitedUserIds`
- `startAt` (string)
- `title` (string)
- `updatedAt` (string|null)

### `list_guilds` (~99 tokens)

List guilds

List the guilds the current user belongs to, with role (Owner/Admin/Member), member count, and campaign count. Requires the guild.read scope. Each entry includes both `name` and `guildId` (shown inline as `[id: …]` and in structuredContent.idMap). Use the `guildId` verbatim for any tool that takes one; refer to guilds by `name` in prose to the user.

Output parameters:

- `guilds` (array)
- `idMap` (object)

### `get_guild` (~35 tokens)

Get guild

Retrieve full details of a guild (members, campaigns, calendar metadata).

Input parameters:

- `guildId` (string, required): Guild ID to retrieve.

Output parameters:

- `campaignIds`
- `id` (string)
- `members`
- `ownerId` (string)
- `summary`

### `list_guild_members` (~39 tokens)

List guild members

List the members of a guild (id, role, status, invitedAt, joinedAt).

Input parameters:

- `guildId` (string, required): Guild ID.

Output parameters:

- `items` (array)

### `add_campaign_to_guild` (~68 tokens)

Add campaign to guild

Add a campaign to a guild. Any active member of the guild can do this; the calling user must be the campaign's GM (enforced server-side).

Input parameters:

- `campaignId` (string, required): Campaign ID to add to the guild.
- `guildId` (string, required): Guild ID.

Output parameters:

- `campaignId` (string)
- `guildId` (string)
- `success` (boolean)

### `invite_guild_member` (~46 tokens)

Invite guild member

Invite a user to join the guild. Owner/Admin only.

Input parameters:

- `guildId` (string, required): Guild ID.
- `userId` (string, required): Argo user ID to invite.

Output parameters:

- `guildId` (string)
- `success` (boolean)
- `userId` (string)

### `remove_guild_member` (~46 tokens)

Remove guild member

Remove a member from the guild. Owner/Admin only.

Input parameters:

- `guildId` (string, required): Guild ID.
- `userId` (string, required): User ID of the member to remove.

Output parameters:

- `guildId` (string)
- `success` (boolean)
- `userId` (string)

### `set_guild_member_role` (~76 tokens)

Set guild member role

Change a guild member's role to Owner, Admin, or Member. Owner/Admin only. Note that promoting another user to Owner transfers the guild — confirm with the user first.

Input parameters:

- `guildId` (string, required): Guild ID.
- `role` (string, required): New role.
- `userId` (string, required): Member to change.

Output parameters:

- `guildId` (string)
- `role` (string)
- `success` (boolean)
- `userId` (string)

### `add_guild_calendar_event` (~136 tokens)

Add guild calendar event

Add a new event to the guild's shared calendar. Owner/Admin only. startDateTime / endDateTime are ISO-8601 (e.g. 2026-06-12T19:00:00).

Input parameters:

- `description` (string): Optional event description.
- `endDateTime` (string): Event end, ISO-8601 — optional.
- `guildId` (string, required): Guild ID.
- `startDateTime` (string, required): Event start, ISO-8601 (e.g. 2026-06-12T19:00:00).
- `title` (string, required): Event title.

Output parameters:

- `id` (string)

### `list_friends` (~16 tokens)

List friends

List the current user's accepted friends.

Output parameters:

- `items` (array)

### `list_sent_friend_requests` (~19 tokens)

List sent friend requests

List outgoing friend requests that are still pending.

Output parameters:

- `items` (array)

### `list_received_friend_requests` (~18 tokens)

List received friend requests

List incoming friend requests awaiting your response.

Output parameters:

- `items` (array)

### `send_friend_request` (~35 tokens)

Send friend request

Send a friend request to another Argo user.

Input parameters:

- `userId` (string, required): Argo user ID of the counterparty.

Output parameters:

- `createdAt` (string|null)
- `id` (string)
- `receiverId` (string)
- `senderId` (string)
- `status` (string)
- `updatedAt` (string|null)

### `accept_friend_request` (~35 tokens)

Accept friend request

Accept an incoming friend request from the given user.

Input parameters:

- `userId` (string, required): Argo user ID of the counterparty.

Output parameters:

- `createdAt` (string|null)
- `id` (string)
- `receiverId` (string)
- `senderId` (string)
- `status` (string)
- `updatedAt` (string|null)

### `reject_friend_request` (~35 tokens)

Reject friend request

Reject an incoming friend request from the given user.

Input parameters:

- `userId` (string, required): Argo user ID of the counterparty.

Output parameters:

- `createdAt` (string|null)
- `id` (string)
- `receiverId` (string)
- `senderId` (string)
- `status` (string)
- `updatedAt` (string|null)

### `cancel_friend_request` (~33 tokens)

Cancel friend request

Cancel a friend request you previously sent.

Input parameters:

- `userId` (string, required): Argo user ID of the counterparty.

Output parameters:

- `createdAt` (string|null)
- `id` (string)
- `receiverId` (string)
- `senderId` (string)
- `status` (string)
- `updatedAt` (string|null)

### `forum_list_categories` (~47 tokens)

List forum categories

List all Discourse forum categories at community.argo.games. Call this first when the user wants to post a bug report or feature request — you need the categoryId to create a topic.

Output parameters:

- `category_list` (object)

### `forum_list_topics` (~90 tokens)

List forum topics

List topics in a specific forum category. Provide categorySlug and/or categoryId — given only one, the other is resolved from the category list automatically. Use forum_list_categories to discover categories.

Input parameters:

- `categoryId` (integer): Numeric category ID. Provide this and/or categorySlug.
- `categorySlug` (string): Category slug (e.g. 'bug-reports'). Provide this and/or categoryId.

Output parameters:

- `topic_list` (object)

### `forum_get_latest_topics` (~20 tokens)

Get latest forum topics

Get the latest active topics across all forum categories.

Output parameters:

- `topic_list` (object)

### `forum_read_topic` (~49 tokens)

Read forum topic

Read the full content of a forum topic including all posts and replies. Post bodies are returned as plain text (HTML markup is stripped).

Input parameters:

- `topicId` (integer, required): Numeric Discourse topic ID.

Output parameters:

- `id` (number)
- `post_stream` (object)
- `slug` (string)
- `title` (string)

### `forum_search` (~74 tokens)

Search forum

Search forum topics and posts. Supports Discourse search syntax: #category-slug to filter by category, @username to filter by author. Always search before creating a bug report or feature request to avoid duplicates.

Input parameters:

- `q` (string, required): Search query. Supports Discourse search syntax (e.g. #category, @username).

Output parameters:

- `grouped_search_result`
- `posts`
- `topics`

### `forum_get_user_posts` (~21 tokens)

List my forum topics

List topics created by the current user on the forum.

Output parameters:

- `topic_list` (object)

### `forum_get_notifications` (~23 tokens)

Get forum notifications

Get the current user's forum notifications (replies, mentions, likes).

Output parameters:

- `notifications` (array)

### `forum_create_topic` (~91 tokens)

Create forum topic

Create a new forum topic (bug report, feature request, or general discussion). Always call forum_search first to check for duplicates. Call forum_list_categories to get the correct categoryId.

Input parameters:

- `categoryId` (integer, required): Numeric category ID. Call forum_list_categories first if unsure.
- `raw` (string, required): Topic body in Markdown.
- `title` (string, required): Topic title. Keep it concise and descriptive.

Output parameters:

- `id` (number)
- `post_number` (number|null)
- `topic_id` (number|null)
- `topic_slug` (string|null)
- `username` (string|null)

### `forum_reply` (~42 tokens)

Reply to forum topic

Reply to an existing forum topic.

Input parameters:

- `raw` (string, required): Reply body in Markdown.
- `topicId` (integer, required): Numeric Discourse topic ID to reply to.

Output parameters:

- `id` (number)
- `post_number` (number|null)
- `topic_id` (number|null)
- `topic_slug` (string|null)
- `username` (string|null)

## Diagnostics

Captured diagnostic sections: TLS, DNSSEC, Authorisation, Transports. The full working is on the page: https://verifymcp.io/servers/argo-rpg-platform-argo-mcp/mcp#diagnostics

## Score history

- 2026-08-03: 77
- 2026-08-02: 77
- 2026-08-01: 77
- 2026-07-31: 77
- 2026-07-30: 71
- 2026-07-29: 71
- 2026-07-28: 71
- 2026-07-27: 70
- 2026-07-26: 69

## Links

- Remote endpoint: https://mcp.argo.games/mcp
- Repository: https://github.com/Argo-RPG-Platform/MCP
- Website: https://app.argo.games/docs/mcp
- Changelog RSS feed: https://verifymcp.io/servers/argo-rpg-platform-argo-mcp/mcp/changelog.xml
- Changelog JSON feed: https://verifymcp.io/servers/argo-rpg-platform-argo-mcp/mcp/changelog.json
- HTML version of this page: https://verifymcp.io/servers/argo-rpg-platform-argo-mcp/mcp
