Maple MCP server
Connect Claude, Cursor and other AI agents to your Maple telemetry over the Model Context Protocol: endpoints, authentication, and every tool the server exposes.
Maple runs a hosted Model Context Protocol (MCP) server. An AI agent connected to it can list services, search traces and logs, triage error issues, read and edit dashboards, and manage alert rules in your organization.
| Endpoint (US) | https://api.maple.dev/mcp |
| Endpoint (EU) | https://api.eu.maple.dev/mcp |
| Transport | Streamable HTTP |
Manifest (server.json) | maple.dev/.well-known/mcp.json · api.maple.dev/.well-known/mcp.json |
| Registry name | dev.maple/maple |
| Auth | Maple API key as Bearer token, or OAuth 2.1 |
| Rate limit | 120 requests per 10 seconds per key or user; over it, 429 with Retry-After: 10 |
Use the endpoint of your organization’s region. The examples below use the US endpoint; for an EU organization replace api.maple.dev with api.eu.maple.dev.
Connecting a client
Any MCP client that speaks Streamable HTTP can connect. Settings → MCP in the dashboard shows the endpoint for your region and ready-made configuration for common clients. There are two ways to authenticate. Both are described in more detail on Authentication.
API key. Create a key under Settings → MCP or Settings → API Keys and pass it as a Bearer token:
{
"mcpServers": {
"maple": {
"type": "http",
"url": "https://api.maple.dev/mcp",
"headers": { "Authorization": "Bearer maple_ak_…" }
}
}
}
For Claude Code: claude mcp add --transport http maple https://api.maple.dev/mcp --header "Authorization: Bearer maple_ak_…".
OAuth. Clients that support the MCP authorization flow need no key. The server publishes its protected-resource metadata at https://api.maple.dev/.well-known/oauth-protected-resource/mcp and its authorization server metadata at https://api.maple.dev/.well-known/oauth-authorization-server. Dynamic client registration and PKCE (S256) are supported, so the client needs only the endpoint URL. It opens a browser sign-in on first use.
Requests are scoped to the organization the key belongs to, or the one chosen at sign-in. A user in several organizations picks one during the OAuth consent step.
Tools
The server exposes the tools below. Read-only tools are marked read; the rest change data in your organization. tools/list returns the current set with full parameter schemas.
Services and discovery
| Tool | Access | What it does |
|---|---|---|
list_services | read | Active services with throughput, error rate and P95 latency |
diagnose_service | read | One service’s health metrics, Apdex, top errors, recent traces and logs |
get_service_top_operations | read | A service’s top operations (endpoints or spans), ranked by a chosen metric |
service_map | read | Service-to-service dependencies with call counts, error rates and latency per edge |
compare_periods | read | Error rate, throughput and P95 across two periods, overall and per service, with regressions flagged |
explore_attributes | read | Attribute keys and their values for filtering; source=services lists environments and commit SHAs |
list_metrics | read | Custom metrics with type, unit, monotonicity and data volume |
describe_warehouse_tables | read | Tables and columns available to raw SQL, with sorting keys and notes on units and casing |
Traces, logs and queries
| Tool | Access | What it does |
|---|---|---|
search_traces | read | Find traces by service, duration, error status, HTTP method, span name or one span attribute |
find_slow_traces | read | The slowest traces with p50, p95, min and max for context |
inspect_trace | read | Span tree and logs for one trace |
inspect_span | read | Full attribute set for one span; decodes messages and tool calls on AI agent spans |
search_logs | read | Log entries, newest first, filtered by service, severity, body text, trace or span |
mine_log_patterns | read | Cluster log messages into templates with counts and a severity and service breakdown |
query_data | read | Aggregate traces, logs, metrics or product events into a time series or top-N breakdown |
run_sql | read | Run one read-only ClickHouse SELECT; see the SQL reference |
Errors
| Tool | Access | What it does |
|---|---|---|
find_errors | read | Errors grouped by type with counts, affected services and a stable fingerprint |
error_detail | read | Sample traces and correlated logs for one error fingerprint |
list_error_issues | read | Error issues with workflow state, counts, assignee and lease holder |
list_error_issue_events | read | An issue’s audit log: state changes, claims, comments, agent notes and fix proposals |
list_error_incidents | read | Time-bounded flare-ups under an error issue (first seen and regressions) |
claim_error_issue | write | Take a lease on an issue so other agents do not duplicate the work |
release_error_issue | write | Give up your lease, optionally moving the issue to another state |
transition_error_issue | write | Move an issue to another workflow state |
set_issue_severity | write | Set or clear an issue’s triage severity |
comment_on_error_issue | write | Add a comment or agent note to an issue’s timeline |
propose_fix | write | Record a proposed fix and move the issue to in_review |
link_pull_request | write | Attach a GitHub pull request to an issue; Maple verifies the fix after it merges |
register_agent | write | Register an LLM agent so it can claim and transition issues. Needs a signed-in user, not an API key |
update_error_notification_policy | write | Choose whether error incidents notify alert destinations, and which ones. Org admins only |
Alerting
| Tool | Access | What it does |
|---|---|---|
list_alert_rules | read | Alert rules with severity, signal type and condition |
get_alert_rule | read | One rule’s full configuration: thresholds, filters, evaluation settings and destinations |
list_alert_destinations | read | Notification destinations with id, type and delivery health |
list_alert_incidents | read | Triggered alert incidents, open and resolved, with the last observed value |
get_incident_timeline | read | Trigger, notification and resolution times for one rule’s incidents, or all rules’ |
list_alert_checks | read | A rule’s recent evaluations with observed value, threshold and sample count |
preview_alert_rule | read | Replay a saved or draft rule over past data: each window’s verdict and skip reason |
create_alert_rule | write | Create an alert rule from a template or from signal type, comparator and threshold |
update_alert_rule | write | Change the fields you pass on an alert rule |
delete_alert_rule | write | Delete an alert rule and its incident history. Requires confirm=true |
Dashboards
| Tool | Access | What it does |
|---|---|---|
list_dashboards | read | Dashboards with widget counts and timestamps |
get_dashboard | read | One dashboard’s full configuration, every widget included |
describe_dashboard_schema | read | What a widget can be: panel types, data sources, units, aggregations and display options |
inspect_chart_data | read | Run a widget’s query and report row counts, series statistics and a health verdict |
create_dashboard | write | Create a dashboard from a template, simplified widget specs or full JSON |
update_dashboard | write | Change a dashboard’s name, description or time range |
add_dashboard_widget | write | Add one widget, from the query builder, raw SQL or a funnel |
update_dashboard_widget | write | Replace one widget with a full widget object |
remove_dashboard_widget | write | Remove one widget |
reorder_dashboard_widgets | write | Move or resize widgets |
replace_dashboard_widgets | write | Replace every widget in one validated write |
Session replays and product events
| Tool | Access | What it does |
|---|---|---|
search_sessions | read | Find browser session replays by user, client, errors, duration or what happened in them |
get_session_transcript | read | A session replay as a text transcript of navigation, clicks, console, network and errors |
get_session_traces | read | The backend traces a browser session produced |
list_product_events | read | Product event names with how often each fired and how many sessions and people it reached |
query_funnel | read | Conversion funnel over product events, with step counts, conversion and drop-off |
Agent sessions
| Tool | Access | What it does |
|---|---|---|
list_agent_sessions | read | AI agent sessions with agent, models, LLM and tool calls, failures, tokens and cost |
get_agent_session | read | One agent session: verdict, checks, findings, timing, turns, tokens and cost |
get_agent_tools_overview | read | Calls, failures and latency per agent tool, compared with the previous window |
get_agent_tool_error | read | One agent tool failure group with affected sessions and sample calls |
Setup and source code
| Tool | Access | What it does |
|---|---|---|
audit_setup | read | Check the whole organization setup: alert routing, error notifications and per-service ingest coverage |
get_instrumentation_recommendations | read | Span and resource attribute problems found in your live data |
list_source_repositories | read | Repositories connected through the GitHub integration |
search_source_code | read | Search one connected repository through GitHub code search |
read_source_file | read | Read a line range from a file in a connected repository |
The source-code tools only return results for repositories the organization’s GitHub App installation can access.
Feedback
| Tool | Access | What it does |
|---|---|---|
send_maple_feedback | write | Tell the Maple team about a bug, a missing capability or a misleading doc: its kind, the agent, and why |
The same feedback can be sent over the REST API with POST /v2/agent_feedback.
Prompts and resources
The server also provides three prompts (incident_triage, latency_analysis, debug_errors) and one resource, maple://instructions, which explains Maple’s data model to the model.
Related
- Maple API: the REST API, with its OpenAPI spec
- Authentication: API keys and OAuth
- Limits: query ranges and rate limits
- llms.txt: the machine-readable index of this site