Roadmunk MCP by usefulapi

Read roadmaps, items and milestones; create and update items and milestones in Roadmunk.

Should I use this

Quality & Safety

A
Description quality
100%
Schema completeness
90%
Naming quality
80%
Poisoning risk
100%
Permission match
100%
Protocol compliance
100%

Based on automated analysis of tool definitions and protocol compliance.

Context Cost

~2,898Tokens (tool definitions)
~1.7 KBTypical response size
Significant attention impact (2.26% of 128k context)

This is the approximate number of tokens consumed each time the server's tools are loaded into a model's context. Higher counts reduce the attention available for other tasks.

Install

One-Click Install

Add this to your `claude_desktop_config.json` file:

{
  "mcpServers": {
    "roadmunk": {
      "url": "https://roadmunk.usefulapi.io/mcp"
    }
  }
}

Remote endpoints

https://roadmunk.usefulapi.io/mcpstreamable-http

What it can do

Tool inventory

Tools (14)

🟢 Read-only🟡 Write🔴 Delete⚪ Unknown
🟢roadmunk_get_account

Get the Roadmunk account: company name, billing contact and plan (package limits). Good first call to confirm the connection. GraphQL: account.

Input Schema

{
  "type": "object",
  "properties": {},
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢roadmunk_list_users(limit, offset, account_roles, search)

List users of the account with role and last login. Optionally filter by role or a search string. GraphQL: users.

Input Schema

{
  "type": "object",
  "properties": {
    "limit": {
      "description": "Results per page (1-100, default 25).",
      "type": "integer",
      "minimum": 1,
      "maximum": 100
    },
    "offset": {
      "description": "Number of results to skip (default 0). Use with hasMore in the answer.",
      "type": "integer",
      "minimum": 0,
      "maximum": 9007199254740991
    },
    "account_roles": {
      "description": "Only users with one of these roles.",
      "type": "array",
      "items": {
        "type": "string",
        "enum": [
          "account_admin",
          "collaborator",
          "reviewer"
        ]
      }
    },
    "search": {
      "description": "Search string for name or email.",
      "type": "string"
    }
  },
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢roadmunk_get_user(user_id)

Get one user by id. GraphQL: user(userID).

Input Schema

{
  "type": "object",
  "properties": {
    "user_id": {
      "type": "string",
      "minLength": 1,
      "description": "The user id (from a roadmunk_list_* tool)."
    }
  },
  "required": [
    "user_id"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢roadmunk_list_roadmaps(limit, offset, search, include_archived)

List roadmaps with title and last update (milliseconds since Unix epoch). Optionally search by title. Archived roadmaps are left out unless asked. GraphQL: roadmaps.

Input Schema

{
  "type": "object",
  "properties": {
    "limit": {
      "description": "Results per page (1-100, default 25).",
      "type": "integer",
      "minimum": 1,
      "maximum": 100
    },
    "offset": {
      "description": "Number of results to skip (default 0). Use with hasMore in the answer.",
      "type": "integer",
      "minimum": 0,
      "maximum": 9007199254740991
    },
    "search": {
      "description": "Search string for the roadmap title.",
      "type": "string"
    },
    "include_archived": {
      "description": "Also list archived roadmaps.",
      "type": "boolean"
    }
  },
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢roadmunk_get_roadmap(roadmap_id)

Get one roadmap by id, with its first 50 fields, items and milestones (hasMore says if more exist). Use roadmunk_list_items / roadmunk_list_milestones for more. GraphQL: roadmap(roadmapID).

Input Schema

{
  "type": "object",
  "properties": {
    "roadmap_id": {
      "type": "string",
      "minLength": 1,
      "description": "The roadmap id (from a roadmunk_list_* tool)."
    }
  },
  "required": [
    "roadmap_id"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢roadmunk_list_items(limit, offset, search, roadmap_id, include_archived_roadmap_items)

Search roadmap items by text, optionally inside one roadmap. An item has dates or a bucket (time period), not both. GraphQL: items.

Input Schema

{
  "type": "object",
  "properties": {
    "limit": {
      "description": "Results per page (1-100, default 25).",
      "type": "integer",
      "minimum": 1,
      "maximum": 100
    },
    "offset": {
      "description": "Number of results to skip (default 0). Use with hasMore in the answer.",
      "type": "integer",
      "minimum": 0,
      "maximum": 9007199254740991
    },
    "search": {
      "description": "Search string (empty lists all items).",
      "type": "string"
    },
    "roadmap_id": {
      "description": "Only items on this roadmap.",
      "type": "string"
    },
    "include_archived_roadmap_items": {
      "description": "Also items of archived roadmaps.",
      "type": "boolean"
    }
  },
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢roadmunk_get_item(item_id, nested_offset)

Get one item by id with its field values, key dates, parent and sub-items (first 50 of each; if hasMore is true, pass a higher nested_offset to read the next 50 of every list). GraphQL: item(itemID).

Input Schema

{
  "type": "object",
  "properties": {
    "item_id": {
      "type": "string",
      "minLength": 1,
      "description": "The item id (from a roadmunk_list_* tool)."
    },
    "nested_offset": {
      "description": "Number of results to skip (default 0). Use with hasMore in the answer.",
      "type": "integer",
      "minimum": 0,
      "maximum": 9007199254740991
    }
  },
  "required": [
    "item_id"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢roadmunk_list_milestones(limit, offset, search, roadmap_id, include_archived_roadmap_milestones)

Search milestones by text, optionally inside one roadmap. A milestone has one date. GraphQL: milestones.

Input Schema

{
  "type": "object",
  "properties": {
    "limit": {
      "description": "Results per page (1-100, default 25).",
      "type": "integer",
      "minimum": 1,
      "maximum": 100
    },
    "offset": {
      "description": "Number of results to skip (default 0). Use with hasMore in the answer.",
      "type": "integer",
      "minimum": 0,
      "maximum": 9007199254740991
    },
    "search": {
      "description": "Search string (empty lists all milestones).",
      "type": "string"
    },
    "roadmap_id": {
      "description": "Only milestones on this roadmap.",
      "type": "string"
    },
    "include_archived_roadmap_milestones": {
      "description": "Also milestones of archived roadmaps.",
      "type": "boolean"
    }
  },
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢roadmunk_get_milestone(milestone_id, fields_offset)

Get one milestone by id with its field values (first 50; if hasMore is true, pass a higher fields_offset). GraphQL: milestone(milestoneID).

Input Schema

{
  "type": "object",
  "properties": {
    "milestone_id": {
      "type": "string",
      "minLength": 1,
      "description": "The milestone id (from a roadmunk_list_* tool)."
    },
    "fields_offset": {
      "description": "Number of results to skip (default 0). Use with hasMore in the answer.",
      "type": "integer",
      "minimum": 0,
      "maximum": 9007199254740991
    }
  },
  "required": [
    "milestone_id"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢roadmunk_get_field(field_id, values_offset)

Get one roadmap or account field by id: name, type and, for list fields, the allowed values (first 100; if hasMore is true, pass a higher values_offset); for number fields the format. GraphQL: field(fieldID).

Input Schema

{
  "type": "object",
  "properties": {
    "field_id": {
      "type": "string",
      "minLength": 1,
      "description": "The field id (from roadmunk_get_roadmap) (from a roadmunk_list_* tool)."
    },
    "values_offset": {
      "description": "Number of results to skip (default 0). Use with hasMore in the answer.",
      "type": "integer",
      "minimum": 0,
      "maximum": 9007199254740991
    }
  },
  "required": [
    "field_id"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🔴roadmunk_create_item(roadmap_id, summary, description, start_date, end_date, ...)

WRITE: create a new item on a roadmap. Changes live data (Roadmunk has no test environment). Give dates OR a bucket, not both. GraphQL: createItem.

Input Schema

{
  "type": "object",
  "properties": {
    "roadmap_id": {
      "type": "string",
      "minLength": 1,
      "description": "The roadmap id (from a roadmunk_list_* tool)."
    },
    "summary": {
      "type": "string",
      "minLength": 1,
      "description": "Item title."
    },
    "description": {
      "type": "string"
    },
    "start_date": {
      "description": "Start date yyyy-mm-dd.",
      "type": "string",
      "pattern": "^\\d{4}-\\d{2}-\\d{2}$"
    },
    "end_date": {
      "description": "End date yyyy-mm-dd.",
      "type": "string",
      "pattern": "^\\d{4}-\\d{2}-\\d{2}$"
    },
    "bucket": {
      "description": "Time bucket name (instead of dates).",
      "type": "string"
    },
    "parent_item_id": {
      "description": "Make the item a sub-item of this item.",
      "type": "string"
    },
    "fields": {
      "description": "Field values to set on the record.",
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "id": {
            "description": "Field id (use id or name).",
            "type": "string"
          },
          "name": {
            "description": "Field name (use id or name).",
            "type": "string"
          },
          "value": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "description": "Value(s) to set, as text. Several only for multi-list fields."
          }
        },
        "required": [
          "value"
        ]
      }
    }
  },
  "required": [
    "roadmap_id",
    "summary"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🔴roadmunk_update_item(item_id, summary, description, start_date, end_date, ...)

WRITE: change an item. Only the arguments you pass change. Changes live data. GraphQL: updateItem.

Input Schema

{
  "type": "object",
  "properties": {
    "item_id": {
      "type": "string",
      "minLength": 1,
      "description": "The item id (from a roadmunk_list_* tool)."
    },
    "summary": {
      "type": "string",
      "minLength": 1
    },
    "description": {
      "type": "string"
    },
    "start_date": {
      "description": "Start date yyyy-mm-dd.",
      "type": "string",
      "pattern": "^\\d{4}-\\d{2}-\\d{2}$"
    },
    "end_date": {
      "description": "End date yyyy-mm-dd.",
      "type": "string",
      "pattern": "^\\d{4}-\\d{2}-\\d{2}$"
    },
    "bucket": {
      "description": "Time bucket name (instead of dates).",
      "type": "string"
    },
    "parent_item_id": {
      "type": "string"
    },
    "fields": {
      "description": "Field values to set on the record.",
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "id": {
            "description": "Field id (use id or name).",
            "type": "string"
          },
          "name": {
            "description": "Field name (use id or name).",
            "type": "string"
          },
          "value": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "description": "Value(s) to set, as text. Several only for multi-list fields."
          }
        },
        "required": [
          "value"
        ]
      }
    }
  },
  "required": [
    "item_id"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🔴roadmunk_create_milestone(roadmap_id, summary, description, date, milestone_type, ...)

WRITE: create a milestone on a roadmap. Changes live data. GraphQL: createMilestone.

Input Schema

{
  "type": "object",
  "properties": {
    "roadmap_id": {
      "type": "string",
      "minLength": 1,
      "description": "The roadmap id (from a roadmunk_list_* tool)."
    },
    "summary": {
      "type": "string",
      "minLength": 1,
      "description": "Milestone title."
    },
    "description": {
      "type": "string"
    },
    "date": {
      "description": "Date yyyy-mm-dd.",
      "type": "string",
      "pattern": "^\\d{4}-\\d{2}-\\d{2}$"
    },
    "milestone_type": {
      "description": "Milestone type name.",
      "type": "string"
    },
    "fields": {
      "description": "Field values to set on the record.",
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "id": {
            "description": "Field id (use id or name).",
            "type": "string"
          },
          "name": {
            "description": "Field name (use id or name).",
            "type": "string"
          },
          "value": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "description": "Value(s) to set, as text. Several only for multi-list fields."
          }
        },
        "required": [
          "value"
        ]
      }
    }
  },
  "required": [
    "roadmap_id",
    "summary"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🔴roadmunk_update_milestone(milestone_id, summary, description, date, milestone_type, ...)

WRITE: change a milestone. Only the arguments you pass change. Changes live data. GraphQL: updateMilestone.

Input Schema

{
  "type": "object",
  "properties": {
    "milestone_id": {
      "type": "string",
      "minLength": 1,
      "description": "The milestone id (from a roadmunk_list_* tool)."
    },
    "summary": {
      "type": "string",
      "minLength": 1
    },
    "description": {
      "type": "string"
    },
    "date": {
      "description": "Date yyyy-mm-dd.",
      "type": "string",
      "pattern": "^\\d{4}-\\d{2}-\\d{2}$"
    },
    "milestone_type": {
      "type": "string"
    },
    "fields": {
      "description": "Field values to set on the record.",
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "id": {
            "description": "Field id (use id or name).",
            "type": "string"
          },
          "name": {
            "description": "Field name (use id or name).",
            "type": "string"
          },
          "value": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "description": "Value(s) to set, as text. Several only for multi-list fields."
          }
        },
        "required": [
          "value"
        ]
      }
    }
  },
  "required": [
    "milestone_id"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}

Community

Rate this Server

Evidence

Recent observations

verifiedversion not recorded14 tools