Surfmeter MCP Server
OfficialServer Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| API_KEY | Yes | A Surfmeter management API key. It is sent in the X-API-KEY request header. | |
| API_ENDPOINT | Yes | Either the Surfmeter server origin, such as https://surfmeter-server.demo-analytics.aveq.info, or the complete management endpoint, such as https://surfmeter-server.demo-analytics.aveq.info/client_admin_api/v1. | |
| API_TIMEOUT_MS | No | Optional request timeout in milliseconds. The default is 30000. | 30000 |
Instructions
Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.
This server publishes no instructions, or was last inspected before Glama recorded them.
Capabilities
Features and capabilities supported by this server
Protocol revision2025-11-25
| Capability | Details |
|---|---|
| tools | {
"listChanged": true
} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| surfmeter_update_clientA | Update an owned client's labels, tags, or client-group assignments. Shared clients are read-only. |
| surfmeter_search_measurementsA | Search and aggregate measurement documents with Elasticsearch Query DSL. Prefer filters and aggregations server-side; use .keyword for exact text fields. |
| surfmeter_search_anomaliesB | Search and aggregate anomaly episode documents with Elasticsearch Query DSL. Use .keyword for exact text fields. |
| surfmeter_get_clientsA | Get one Surfmeter client when id is supplied, or list a bounded page of visible clients. List responses include total and next_offset pagination metadata. |
| surfmeter_get_system_statusB | Read server metadata, license usage, fleet health, one client's status history, detection thresholds, or Surfmeter AI status. |
| surfmeter_search_actionsA | Find less-common Surfmeter operations by intent. Returns action IDs, safety categories, executors, and parameter names. Use surfmeter_describe_action for the exact schema. |
| surfmeter_describe_actionA | Get the exact schema, safety category, and required executor for one discovered Surfmeter action. |
| surfmeter_execute_read_actionA | Execute a read-only Surfmeter action returned by surfmeter_search_actions. |
| surfmeter_execute_write_actionB | Execute a non-destructive Surfmeter mutation returned by surfmeter_search_actions. |
| surfmeter_execute_destructive_actionA | Execute a destructive Surfmeter action returned by surfmeter_search_actions. Confirm exact targets and consequences first. |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
No resources | |
TDQS
Scored across 10 tools
Most tools have clearly distinct purposes, but get_system_status bundles multiple concerns (server metadata, client status history, thresholds, AI status) and could be confused with get_clients for status-related queries. The two search tools are structurally similar as well, though their target document types are clear.
All tools follow a consistent surfmeter_<verb>_<object> pattern with snake_case throughout. The progression from search_actions → describe_action → execute_*_action is predictable and logical.
Ten tools is well-scoped for this domain: direct client/measurement/anomaly/status access plus a generic action discovery and execution workflow. Each tool serves a distinct role without unnecessary bloat.
The dynamic action system fills coverage gaps for less-common operations, making the surface quite capable. However, direct client lifecycle management is incomplete (get and update only, no create/delete), and measurements/anomalies are only accessible via search rather than direct retrieval.