MonsterOps MCP Server
Connect MCP-capable AI tools to MonsterOps company data through a Streamable HTTP endpoint. Use API v3 GraphQL for direct product automation.
MCP server help
Authentication And Scope
Use the same organization API key that powers the GraphQL API, with the Bearer prefix.
Authorization: Bearer YOUR_API_KEY
Content-Type: application/json
Accept: application/json, text/event-stream
MCP URLs
| Environment | URL |
|---|---|
| Production | https://api.monsterops.io/mcp |
Supported JSON-RPC Methods
| Method | Description |
|---|---|
initialize |
Negotiates MCP protocol version and capabilities. |
notifications/initialized |
Completes initialization. Returns HTTP 202. |
tools/list |
Lists available MonsterOps tools. |
tools/call |
Calls a MonsterOps tool by name. |
ping |
Health check for the MCP session. |
Initialize And Discover Tools
Initialize Request
{
"jsonrpc": "2.0",
"id": 1,
"method": "initialize",
"params": {
"protocolVersion": "2025-11-25",
"capabilities": {},
"clientInfo": {
"name": "Example AI client",
"version": "1.0.0"
}
}
}
List Tools
{
"jsonrpc": "2.0",
"id": 2,
"method": "tools/list",
"params": {}
}
Available Tools
| Tool | Description |
|---|---|
get_account_context |
Read the user, company, team scope, and accessible teams. |
list_team_members |
List accessible teams and assigned users. |
list_users |
List visible organization users with teams, roles, permissions, and XP. |
list_news |
List recent news items the API key can access. |
list_rocks |
List rocks with owner, status, due date, milestones, and notes. |
list_kpis |
List KPIs with targets, owner, status, and recent values. |
list_todos |
List to-dos with owner, priority, status, due date, and notes. |
list_issues |
List issues with owner, priority, timeframe, status, and notes. |
list_objectives |
List objectives and related rocks. |
list_core_values |
List company core values. |
get_org_chart |
List roles and reporting relationships. |
list_meetings |
List recent meetings with agenda, owner, status, and digest context. |
Call A Tool
Object Metadata
Objects include a nullable metadata string of at most 256 characters. Set it through the object's existing
create or update tool, including nested rock milestones. Omit it to preserve the current value,
or send null to clear it. Metadata is stored and returned exactly as supplied, without truncation. Longer values are rejected.
For example, update_rock accepts metadata alongside
team_idx and rock_idx. Existing object permissions apply.
external_id is internal and cannot be read or supplied through client MCP.
Paginate List Results
All list_* tools accept optional limit and page arguments.
The default limit is 20, the maximum is 50, and pages start at 1. Omitted or null arguments use the defaults.
Each response includes pagination with page, limit,
total_count, total_pages, and next_page.
Keep the same limit and request next_page until it is null to retrieve every accessible result.
For example, 86 accessible rocks take five pages at the default limit, or two pages with a limit of 50.
Names are returned in full. Shortened descriptions have description_truncated: true.
Notes use content_truncated, meeting notes use notes_truncated,
and meeting digest summaries use summary_truncated. These flags are false when text is not shortened.
list_team_members paginates teams and includes all members of each returned team.
{
"jsonrpc": "2.0",
"id": 4,
"method": "tools/call",
"params": {
"name": "list_rocks",
"arguments": { "limit": 50, "page": 2 }
}
}
Filter Team Item Lists
Use "me" in owner_idx, user_idx, or other
*_user_idx arguments to refer to the user attached to the API key.
This also works in nested objects, such as rock milestone owners, and for OAuth connections.
MCP replaces it with that user's prefixed idx before applying the usual validation and permissions.
For example, get_user accepts { "user_idx": "me" }, and
list_todos accepts { "owner_idx": "me", "completed": false }.
list_news, list_todos, list_rocks, list_kpis,
and list_issues accept team_idx and owner_idx, separately or together.
A team filter includes KPIs shared into that team. The API key must have access to the selected team.
Additional filters depend on the item type:
- News:
completed,archived. - To-dos:
completed,archived,priorities. - Rocks:
completed,archived,statuses. - Issues:
solved,archived,priorities,timeframe. - KPIs:
snoozed. KPIs have no archived or solved state.
Boolean filters accept true or false. Omit a filter or pass null to include both states.
priorities is a non-empty array of integers from 0 to 5.
timeframe is short_term or long_term.
statuses is a non-empty array containing any of backlog, planned,
on-track, at-risk, off-track, completed, or canceled.
Rocks without a status count as backlog; completed rocks include canceled rocks.
Filters combine with AND; entries within priorities or statuses match with OR.
Pagination counts reflect only matching items. Keep the same filters when requesting the next page.
Unsupported filters and invalid values return errors instead of silently broadening the results.
{
"jsonrpc": "2.0",
"id": 6,
"method": "tools/call",
"params": {
"name": "list_issues",
"arguments": {
"team_idx": "team_example",
"owner_idx": "user_example",
"solved": false,
"archived": false,
"priorities": [4, 5],
"timeframe": "short_term",
"limit": 50,
"page": 1
}
}
}
Read Full Object Details
Use get_rock, get_todo, get_issue, get_news,
get_kpi, get_objective, get_core_value, get_meeting,
get_team, get_user, or get_role with the corresponding prefixed idx.
Each tool requires one argument named for its object, such as rock_idx, todo_idx,
or core_value_idx, and returns that object under rock, todo,
or core_value. The same API-key organization and team permissions apply.
Detail responses preserve full text, include all notes, and do not limit detail collections.
Rocks include milestones; KPIs include all values and their notes;
meetings include the full transcript, notes, digest, and meeting steps.
Related objects are identified by prefixed idx for further lookups.
{
"jsonrpc": "2.0",
"id": 5,
"method": "tools/call",
"params": {
"name": "get_rock",
"arguments": { "rock_idx": "rock_example" }
}
}
Request
{
"jsonrpc": "2.0",
"id": 3,
"method": "tools/call",
"params": {
"name": "get_account_context",
"arguments": {}
}
}
Response Shape
{
"jsonrpc": "2.0",
"id": 3,
"result": {
"content": [
{
"type": "text",
"text": "{ ... }"
}
],
"structuredContent": {
"scope": {
"mode": "all_accessible_teams"
}
},
"isError": false
}
}
curl Example
curl https://api.monsterops.io/mcp \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-H "Accept: application/json, text/event-stream" \
--data '{
"jsonrpc": "2.0",
"id": 2,
"method": "tools/list",
"params": {}
}'