splunk-dashboard-mcp
Provides tools for interacting with Splunk's management REST API to list, read, create, and update dashboards (Dashboard Studio and Classic), run SPL searches, and manage reports and alerts with access control enforcement.
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@splunk-dashboard-mcpShow me the dashboards in the main app."
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
splunk-dashboard-mcp
A Model Context Protocol (MCP) server for reading and building Splunk dashboards.
It talks to the Splunk management REST API (data/ui/views) as you — via browser
SSO cookies — so Splunk's own permissions decide what you can see
and edit. It supports both Dashboard Studio (JSON) and Classic (Simple XML)
dashboards, checks your edit access before updating, and always creates new
dashboards under your own profile.
It also enforces a documentation-first workflow: the write tools require you to confirm you consulted the official Splunk docs before authoring SPL or a dashboard definition.
How it works
Auth: Complete SSO once in a browser (
splunk_login); cookies are saved and reused for REST calls. Cookies carry your identity, so all reads/writes are ACL-enforced by Splunk. (Auth is SSO-cookie only — there is no token mode.)Reach: REST is reached through the web tier proxy path (
{base}/{locale}/splunkd/__raw/..., SSO-cookie friendly) with a fallback to the management port (:8089). The server probes which works and caches it. Pin it withSPLUNK_REST_MODE=proxy|mgmt.Read:
list_dashboards,get_dashboardreturn only what your account can see.Access check:
check_dashboard_accessreads the ACL and reportscan_write.Write:
create_dashboardcreates under your username (private by default);update_dashboardre-checkscan_writeand refuses if Splunk denies write.
Related MCP server: Tableau MCP Server
Tools
Tool | Purpose |
| Browser SSO; save cookies for REST. |
| Return official Splunk doc references (topic: spl/studio/classic/report/alert/rest). Use before authoring. |
| Show the Splunk user the session runs as (create owner). |
| Run an SPL search and return results (runs as you). |
| List dashboards you can see; filter by app/owner/name. |
| Full definition + ACL + detected format for one dashboard. |
| Report whether you can edit a dashboard before trying. |
| Create a new dashboard under your profile (Studio or Classic). Requires |
| Update an existing dashboard; refuses if |
| List / read reports (saved searches). |
| Create under your profile / update (access-checked). Requires |
| List / read alerts (scheduled triggering saved searches). |
| Create under your profile / update (access-checked). Requires |
There is intentionally no delete tool — this server does not delete dashboards, reports, or alerts.
Reports and alerts
Both are Splunk saved/searches objects. A report is a saved search (optionally
scheduled via cron). An alert is a scheduled saved search with a trigger
condition (number of results / hosts / sources / custom), a comparator and
threshold, and optional actions. New reports/alerts are created under your profile.
Search
query_splunk runs SPL via search/jobs/export (runs as you; Splunk enforces data
access). Consult splunk_docs (topic spl) before composing queries — SPL is
version-specific.
Session keep-alive
While the server runs, a background loop pings a lightweight REST endpoint to keep
your Splunk session warm and warns early (on stderr) if the SSO cookie goes stale.
Interval: SPLUNK_KEEPALIVE_SECONDS (default 240; 0 disables). Note: SSO cookies
cannot be renewed headlessly — when the session truly expires, run splunk_login
again. The client re-reads the cookie file on every request, so re-logging in
another window is picked up with no restart.
Documentation-first policy
Any agent using this server must read the relevant Splunk docs
before writing SPL or a dashboard definition, then pass docsConsulted: true (and a
docsReference) to the write tools. The tools refuse writes without it. See
.kiro/steering/splunk-dashboard-authoring.md. This protects accuracy — SPL and the
dashboard schemas are version-specific and must not be guessed.
Setup
npm install
npm run install-browser # one-time: Chromium for Playwright SSOConfigure via your MCP client (mcp.json) env block, or a local .env
(see .env.example). Minimum:
SPLUNK_BASE_URL=https://splunk.<your-org>.comThen, in your client, run the splunk_login tool (or npm run login) and complete
SSO in the window that opens.
Example mcp.json entry
{
"mcpServers": {
"splunk-dashboard": {
"command": "node",
"args": ["c:/MCP Projects/splunk-dashboard-mcp/src/index.js"],
"env": {
"SPLUNK_BASE_URL": "https://splunk.example.com"
}
}
}
}Then run the splunk_login tool (or npm run login) and complete SSO. Auth is
SSO-cookie only.
Validate
npm run validate # syntax + config (no network)
npm run validate -- --probe # live: whoami + sample read (after completing login)
npm test # unit tests (format detection, docs gate)Notes
Reading works with any authenticated account. Writing requires your Splunk role to allow it (e.g. the
edit_viewcapability and write access to the target app). If your account is read-only, create/update will be refused by Splunk's ACL — the tools surface that clearly rather than failing with a raw 403.New dashboards are created private (owned by you). Change sharing in Splunk if others need access.
Available Tools
17 toolscheck_dashboard_accessA
Check whether you can edit a dashboard BEFORE trying to update it. Reads the Splunk ACL and reports can_write with a plain-language verdict.
| Name | Required | Description | Default |
|---|---|---|---|
| app | No | App namespace. Default search. | |
| name | Yes | Dashboard (view) name/id. | |
| owner | No | Owner username. Default any (-). |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the burden. 'Reads the Splunk ACL and reports can_write' makes the read-only nature and return style explicit. It could mention error or login preconditions, but the tool is a simple access check and no side effects are implied.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, no filler. The key instruction appears first, and the second sentence states what the tool reads and returns. Every word earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool is simple, has full schema coverage, and no output schema. The description gives enough return semantics ('can_write' plus a verdict). It does not specify behavior on missing dashboards or ACL errors, but it is sufficient for the tool's narrow access-check purpose.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the app, name, and owner parameters are already documented. The description adds workflow context but not additional parameter-level meaning, which is acceptable given the schema handles it.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the specific verb and resource: check whether you can edit a dashboard. It also names the mechanism (reads the Splunk ACL) and the output (can_write with a plain-language verdict), which distinguishes it from update_dashboard and get_dashboard.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly tells the agent to run this 'BEFORE trying to update it,' making the timing relative to update_dashboard clear. It does not enumerate all alternative tools or with exclusions, but the intended workflow is obvious.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_alertA
Create an alert (scheduled saved search with a trigger condition) under YOUR profile. Requires docsConsulted=true. DOCUMENTATION-FIRST: read the official Splunk docs (use the splunk_docs tool) before writing SPL or a dashboard definition; do not guess syntax or schema.
| Name | Required | Description | Default |
|---|---|---|---|
| app | No | App namespace. Default search. | |
| cron | No | Cron schedule. Default '*/15 * * * *'. | |
| name | Yes | New alert name. | |
| latest | No | Dispatch latest time. Default now. | |
| search | Yes | SPL for the alert. | |
| actions | No | Optional alert actions (e.g. 'email', 'webhook'). Configure action params in Splunk UI. | |
| earliest | No | Dispatch earliest time. Default -15m@m. | |
| condition | No | Trigger: 'number of results' | 'number of hosts' | 'number of sources' | 'custom'. Default 'number of results'. | |
| threshold | No | For non-custom: numeric threshold. Default '0'. | |
| comparator | No | For non-custom: 'greater than' | 'less than' | 'equal to' | 'not equal to' | 'rises by' | 'drops by'. Default 'greater than'. | |
| description | No | Optional description. | |
| docsConsulted | Yes | Must be true. | |
| docsReference | No | The doc URL/section you used. | |
| customCondition | No | For condition='custom': the SPL condition. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It discloses the mandatory docsConsulted flag and the documentation-first workflow, which is useful, but it does not describe side effects of creation (e.g., whether existing alerts with the same name are overwritten), authentication requirements, or error behavior. The 'read the official Splunk docs ... or a dashboard definition' snippet is generic and slightly off-topic for an alert tool, but the core constraint is conveyed.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three sentences with no fluff. The purpose and scope are front-loaded, the prerequisite is stated in the second sentence, and the third gives an actionable directive. Every sentence earns its place without redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 14-parameter tool with no output schema or annotations, the description provides key usage guidance (docs-first, docsConsulted requirement) and a conceptual model. It does not mention authentication (though splunk_login sibling exists) or success/error output, but schema covers parameter defaults and enums. The slight mismatch about 'dashboard definition' is a minor flaw, but overall the agent has enough to call the tool correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so baseline is 3. The description adds conceptual meaning beyond the schema by explaining that an alert is a scheduled saved search with a trigger condition, which clarifies how parameters like search, condition, threshold, and cron relate. It also emphasizes that docsConsulted must be true, reinforcing its semantics beyond the schema's simple 'Must be true.'
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action (create), the resource (alert), and defines it as a 'scheduled saved search with a trigger condition,' which immediately distinguishes it from sibling tools like create_report or create_dashboard. It also adds scope ('under YOUR profile'), removing ambiguity about the target user.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly states a prerequisite (docsConsulted=true) and gives a direct instruction to use the splunk_docs tool before writing SPL, preventing guesswork. It does not explicitly list when not to use it (e.g., for updating an existing alert), but the creation context is clear, and the 'under YOUR profile' constraint implies personal alerts rather than shared ones.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_dashboardA
Create a NEW dashboard under YOUR profile (owner = your Splunk user, private by default). Supports Dashboard Studio (JSON) and Classic (Simple XML). Requires docsConsulted=true. DOCUMENTATION-FIRST: read the official Splunk docs (use the splunk_docs tool) before writing SPL or a dashboard definition; do not guess syntax or schema.
| Name | Required | Description | Default |
|---|---|---|---|
| app | No | App namespace to create in. Default search. | |
| name | Yes | New dashboard name/id (unique within the app). | |
| label | No | Optional display label (Studio). | |
| format | No | studio (JSON) or classic (XML). Auto-detected if omitted. | |
| definition | Yes | Full dashboard definition: Studio JSON or Classic Simple XML. | |
| docsConsulted | Yes | Must be true — confirms you read the Splunk docs for this format. | |
| docsReference | No | The doc URL/section you used (recommended for the audit trail). |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the burden and covers important behavior: it is a mutating create operation, the dashboard is owned by the caller's Splunk user, the default visibility is private, and documentation consultation is mandatory. It doesn't detail failure modes or overwrite behavior, but 'NEW' implies non-overwrite and the core side effects are disclosed.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three front-loaded sentences with no filler. The core purpose, key constraints, supported formats, and documentation-first requirement are all stated directly and efficiently.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a create action with no output schema, the description covers ownership, privacy default, supported definition formats, and the required docsConsulted flag. It omits only minor details such as the app namespace default, which the schema already documents, so an agent has enough context to invoke this correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the baseline applies. The description reinforces the format mapping (Studio JSON vs Classic XML) and emphasizes docsConsulted=true, but these details are also present in the input schema. Little new parameter-level meaning is added beyond emphasis.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description starts with a specific verb and resource ('Create a NEW dashboard') and adds distinguishing details: it is scoped to the caller's profile, private by default, and supports both Dashboard Studio JSON and Classic Simple XML. This makes it easy to separate from sibling tools like update_dashboard or create_report.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description clearly indicates when this tool is appropriate — when creating a new dashboard owned by the calling user — and explicitly instructs the agent to consult Splunk docs first via the splunk_docs tool. It doesn't explicitly enumerate exclusions or contrast with update_dashboard, but the 'NEW' and ownership language provides sufficient routing context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_reportA
Create a report (saved search) under YOUR profile. Optionally scheduled via cron. Requires docsConsulted=true. DOCUMENTATION-FIRST: read the official Splunk docs (use the splunk_docs tool) before writing SPL or a dashboard definition; do not guess syntax or schema.
| Name | Required | Description | Default |
|---|---|---|---|
| app | No | App namespace to create in. Default search. | |
| cron | No | Optional cron schedule (e.g. '0 6 * * 1'). Sets is_scheduled. | |
| name | Yes | New report name (unique within the app). | |
| latest | No | Dispatch latest time (e.g. now). | |
| search | Yes | SPL for the report. | |
| earliest | No | Dispatch earliest time (e.g. -7d@d). | |
| description | No | Optional description. | |
| docsConsulted | Yes | Must be true — confirms docs consulted. | |
| docsReference | No | The doc URL/section you used. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description adds useful behavioral context: reports are scoped to YOUR profile, cron scheduling is optional, and docsConsulted must be true. However, it does not disclose whether authentication is required, what side effects occur on duplicate names, or what the response contains.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The purpose is front-loaded and the remaining sentences quickly cover scheduling, the docs gate, and the documentation-first rule. 'or a dashboard definition' is slightly tangential for a report-creation tool, but overall the description is compact and scannable.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The schema plus description give enough to invoke the tool with the required name, search, and docsConsulted fields. But there is no output schema and no mention of authentication or return behavior, so the description is not fully complete for a 9-parameter write operation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the detailed property descriptions already carry most of the parameter meaning. The description only restates the cron option and the docsConsulted requirement without adding new semantics for the other parameters.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb and resource: 'Create a report (saved search) under YOUR profile.' The parenthetical 'saved search' and the personal profile scope clearly distinguish it from sibling tools such as create_dashboard and create_alert.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It mandates a docs-first workflow and the docsConsulted=true gate, but it never names alternatives or states when not to use this tool. The intended use is implied by the tool name and 'report (saved search)' rather than explicitly contrasted with create_alert or create_dashboard.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_alertA
Get one alert (saved search with alerting): SPL, schedule, trigger condition, actions, ACL.
| Name | Required | Description | Default |
|---|---|---|---|
| app | No | App namespace. Default search. | |
| name | Yes | Alert (saved search) name. | |
| owner | No | Owner username. Default any (-). |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden of behavioral disclosure. While it lists the returned fields, it does not explicitly state whether the operation is read-only, requires special permissions, or has any side effects. The verb 'Get' suggests read-only behavior, but that is not explicitly disclosed, and there is no mention of error behavior or access requirements.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence that front-loads the core purpose ('Get one alert') and efficiently lists the returned fields in a compact colon-separated list. No unnecessary words or repetition; every element adds value.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple getter tool with no output schema and no annotations, the description is largely sufficient: it clearly states the resource type and enumerates the return fields. However, it omits any mention of permissions or error handling, which might be expected in a Splunk context, though these may be implicitly understood from the environment.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, with each parameter (app, name, owner) already documented in the input schema. The description adds minimal value beyond the schema, only clarifying that the 'name' refers to a saved search with alerting. Since the schema carries the parameter details, this is adequate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'Get' and the resource 'one alert', and clarifies that an alert is a 'saved search with alerting'. It distinguishes from list_alerts by focusing on a single item and enumerates the specific fields returned (SPL, schedule, trigger condition, actions, ACL), leaving no ambiguity about what the tool does.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies the tool is for retrieving a single alert, which naturally differentiates it from list_alerts (plural). However, it provides no explicit statement of when to use this tool over alternatives, nor any exclusions or conditions. The usage context is inferred but not made explicit.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_dashboardA
Fetch one dashboard's full definition (Dashboard Studio JSON or Classic Simple XML), its app/owner/sharing, detected format, and your can_write flag.
| Name | Required | Description | Default |
|---|---|---|---|
| app | No | App namespace. Default: SPLUNK_DEFAULT_APP (search). | |
| name | Yes | Dashboard (view) name/id. | |
| owner | No | Owner username. Default: any (-). |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full disclosure burden. 'Fetch' implies a read-only operation, and it usefully lists what is returned. However, it does not explicitly state that the operation is non-destructive, note auth requirements, or describe error behavior (e.g., dashboard not found).
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single front-loaded sentence that leads with the core purpose before listing return contents. Zero filler—every clause earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema, the description adequately enumerates what the tool returns (definition, sharing metadata, format, can_write flag). For a simple fetch tool whose params are fully schema-documented, this is largely sufficient; only error handling and explicit read-only status are unaddressed.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so all three parameters (app, name, owner) are already documented. The description adds little parameter-specific meaning beyond the schema, mentioning app/owner only as part of the return value rather than as call guidance. Baseline 3 is appropriate when the schema carries the load.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb ('Fetch'), a specific resource ('one dashboard's full definition'), and enumerates the return contents (format, app/owner/sharing, can_write flag). This clearly distinguishes it from siblings like list_dashboards (enumeration), check_dashboard_access (access check), and create/update_dashboard (mutations).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The phrase 'one dashboard's full definition' implies this tool is for retrieving a single dashboard's complete definition rather than listing or checking access, but no alternatives are named and no exclusions given. Usage context is inferred rather than explicit.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_reportA
Get one report (saved search): its SPL, schedule, ACL, and full config.
| Name | Required | Description | Default |
|---|---|---|---|
| app | No | App namespace. Default search. | |
| name | Yes | Report (saved search) name. | |
| owner | No | Owner username. Default any (-). |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the behavioral disclosure burden; it does communicate that the tool returns a report's configuration rather than just existence. It does not explicitly state read-only behavior, permissions, or behavior when the report is missing, leaving some ambiguity for a tool with no annotation safety hints.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Single sentence with no filler; the key verb and object lead, and the additional content list is compact and informative.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple read tool with no output schema, the description covers what the agent receives (SPL, schedule, ACL, config). It lacks explicit usage differentiation from list_reports, but the schema fleshes out the parameters and the rest is straightforward.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the parameter descriptions already explain app, name, and owner. The tool description adds no parameter-level meaning beyond labeling the target as a saved search, so the baseline of 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb (Get) and resource (one report), disambiguates 'report' as a saved search, and enumerates the returned config (SPL, schedule, ACL, full config). This clearly distinguishes it from siblings like list_reports and create_report.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The phrase 'one report' implies use with list_reports for enumeration, but there is no explicit when-to-use guidance or mention of alternatives. An agent must infer that this is the detail-fetch variant based on sibling names.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_alertsA
List saved searches classified as alerts (scheduled + triggering) that you can see.
| Name | Required | Description | Default |
|---|---|---|---|
| app | No | App namespace. Omit for all. | |
| count | No | Max results (default 50, max 200). | |
| owner | No | Owner username. Omit for all. | |
| query | No | Case-insensitive substring match on name. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the behavioral disclosure burden. It does disclose that results are limited to what the caller 'can see' and defines alert classification as 'scheduled + triggering,' which adds useful context. However, it does not explicitly state read-only behavior, authentication expectations, or whether only owned alerts versus all visible alerts are returned.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single front-loaded sentence with no filler. Every phrase earns its place: the verb, the resource, the alert classification, and the visibility qualifier. It is appropriately compact for a straightforward list tool.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description is adequate for a simple list operation and the schema fully documents all four parameters. However, with no output schema and no annotations, it does not mention sibling routing (e.g., using get_alert for details) or any additional behavioral context, leaving moderate gaps.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, and each parameter already has semantic meaning in the schema. The description adds no parameter-level detail beyond the core listing concept, so the baseline score of 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb and resource: 'List saved searches classified as alerts,' and adds clarifying scope with '(scheduled + triggering)' and 'that you can see.' This clearly separates it from siblings like list_dashboards, list_reports, and get_alert without requiring schema inspection.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no guidance on when to use this tool versus alternatives such as get_alert, create_alert, update_alert, or list_reports. The only usage signal is the verb 'List,' so the agent must infer the appropriate context rather than being told.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_dashboardsA
List dashboards you can see (Splunk enforces visibility by your account). Filter by app, owner, or a name/label substring. Wildcards: omit app/owner to search all.
| Name | Required | Description | Default |
|---|---|---|---|
| app | No | App namespace (e.g. search). Omit for all apps. | |
| count | No | Max results (default 50, max 200). | |
| owner | No | Owner username. Omit for all owners. | |
| query | No | Case-insensitive substring match on name/label. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the burden. It discloses that visibility is enforced by the user's account, which is useful behavioral context. However, it doesn't mention pagination behavior beyond the count parameter, sorting, or what happens when no dashboards match. The description adds some value but leaves gaps.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three sentences with no waste. The core purpose is front-loaded, filters are listed compactly, and the wildcard note is a useful addition. Every sentence earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a read-only list tool with no output schema, the description covers the essential behavior: what it lists, visibility constraints, and filtering options. It doesn't describe the return format, but for a list tool this is less critical. The main gap is lack of explicit pagination or sorting behavior, but the count parameter covers the main need.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents all four parameters. The description adds context about wildcards and case-insensitive substring matching, which is helpful, but it doesn't significantly go beyond the schema. Baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool lists dashboards visible to the user, with explicit filtering by app, owner, or name/label substring. It distinguishes itself from sibling tools like get_dashboard (which retrieves a single dashboard) and create/update_dashboard (which mutate dashboards).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explains when to use this tool: to list dashboards the user can see, with filters. It doesn't explicitly name alternatives or state when not to use it, but the context of sibling tools and the clear filtering guidance make the usage context strong. It could be improved by explicitly contrasting with get_dashboard or check_dashboard_access.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_reportsA
List saved searches classified as reports (not alerts) that you can see. Filter by app/owner/name.
| Name | Required | Description | Default |
|---|---|---|---|
| app | No | App namespace. Omit for all. | |
| count | No | Max results (default 50, max 200). | |
| owner | No | Owner username. Omit for all. | |
| query | No | Case-insensitive substring match on name. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are present, so the description carries the behavioral burden. It communicates that this is a read-style operation, that visibility is scoped to the caller ('that you can see'), and that filtering is optional. It does not discuss ordering or response shape, but it does clarify the tool's main behavioral boundaries.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Every clause earns its place: the object, the scope qualifier, the exclusion of alerts, and a one-line pointer to filters. No fluff, examples, or repetition.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Coverage is strong given the tool's simplicity: the operation, object type, visibility scope, and filter dimensions are all present. The schema fills in count/query semantics impossibly. Missing only a hint about output shape/ordering, which is minor for a list endpoint.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%; the description restates filter dimensions but adds little beyond the schema. It does clarify that 'name' relates to the query param, but the schema's 'Case-insensitive substring match' and count defaults already carry most of the semantic load.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The first sentence names the operation ('List'), the object ('saved searches classified as reports'), and the scope ('that you can see'). The parenthetical '(not alerts)' immediately disambiguates it from a closely related category, so an agent can identify purpose without guessing.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It gives clear context for when to use the tool: to list report-type saved searches, not alertschers. The filter phrase tells an agent which selection capabilities exist. It stops short of explicitly naming sibling tools (e.g., list_alerts vs list_reports), so it does not get full 5.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
query_splunkA
Run an SPL search and return results (runs as you; Splunk enforces data access). Use the splunk_docs tool (topic 'spl') to verify command syntax before composing queries. DOCUMENTATION-FIRST: read the official Splunk docs (use the splunk_docs tool) before writing SPL or a dashboard definition; do not guess syntax or schema.
| Name | Required | Description | Default |
|---|---|---|---|
| query | Yes | SPL query. A bare term expression is auto-prefixed with 'search'. | |
| latest | No | Latest time (e.g. now). Default now. | |
| earliest | No | Earliest time (e.g. -24h@h, -7d, 0). Default -24h@h. | |
| maxResults | No | Max results (default 100, max 10000). |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the transparency burden. It discloses that the operation 'runs as you' (authentication context) and that 'Splunk enforces data access' (authorization), which are important behavioral traits. However, it does not explicitly state read-only or potential side effects, though a query inherently implies read-only; it omits details on rate limits or large result handling.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise yet information-dense: it states purpose, security context, and a documentation-first rule in just two sentences. The structure is logical, leading with the function and then the usage prerequisite.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a query execution tool, this definition covers all essential operational aspects: what it does, how to call it (with parameter details), default values, and a mandatory documentation step. It lacks an output schema but compensates with the maxResults description and is fully adequate for correct invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema describes all 4 parameters with clear explanations, including defaults for earliest/latest and maxResults, and the query parameter notes auto-prefixing of bare terms. This gives agents complete guidance on how to construct inputs without ambiguity.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states 'Run an SPL search and return results', specifying a concrete verb and resource, and adds 'runs as you' which conveys scope. Among siblings, only this tool executes SPL queries, so it is distinct from splunk_docs, dashboard, report, and alert tools.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It explicitly instructs to 'Use the splunk_docs tool (topic 'spl') to verify command syntax before composing queries' and emphasizes 'DOCUMENTATION-FIRST' and 'do not guess syntax or schema', giving clear when-to-use and pre-conditions. It routes users to the appropriate alternative (splunk_docs) and clarifies that this tool is for running queries after verification.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
splunk_docsA
Return the official Splunk documentation references you MUST consult before authoring SPL or dashboards. Call this first when writing queries or dashboard definitions. Optional topic: spl | studio | classic | rest.
| Name | Required | Description | Default |
|---|---|---|---|
| topic | No | Optional focus: spl, studio, classic, or rest. Omit for all references. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It states what the tool returns (documentation references) and the mandatory ordering ('Call this first'), but it does not disclose side effects (though it implies read-only), authentication requirements, rate limits, or the exact format of the returned references. It is not contradictory, but it is not rich in behavioral detail.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences with no wasted words. The core purpose and directive are front-loaded in the first sentence, with the optional parameter detail in the second. It is concise, well-structured, and immediately actionable.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool is simple with a single optional parameter and no output schema. The description communicates its purpose and invocation order, but it does not clarify what the 'documentation references' actually contain (e.g., links, text snippets, file paths) or how they will be presented. Given the lack of an output schema, this leaves some ambiguity for the agent, but the core context is sufficient for basic usage.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema property 'topic' already includes a description listing the valid options ('Optional focus: spl, studio, classic, or rest. Omit for all references.'). The tool description repeats the same information ('Optional topic: spl | studio | classic | rest.'). Since schema coverage is 100% and the description adds no new semantic meaning beyond the schema, the baseline of 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states a specific action ('Return the official Splunk documentation references') and the resource being returned (documentation references). It also specifies the purpose ('MUST consult before authoring SPL or dashboards'), which distinguishes it from sibling tools that actually create or query data. This is unambiguous and well-scoped.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly tells the agent when to call it ('Call this first when writing queries or dashboard definitions'), providing clear context for usage. However, it does not mention any alternative tools or exclusion scenarios (e.g., 'do not call if you already have the docs'), so it falls just short of a 5.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
splunk_loginA
SSO login in a browser (Playwright); saves cookies for the Splunk REST API. Auth is SSO-cookie only. If IdP redirects or automation block the session, delete the reported cookie file and retry, and complete SSO fully in the opened window.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the burden and does well: it reveals browser automation, cookie persistence, SSO-only auth, and troubleshooting steps for IdP/automation failures. It doesn't mention reversibility or that this mutates local state, but the cookie-file note covers the key side effect.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three dense sentences, each earning its place: what it does, how auth works, and what to do on failure. Front-loaded with the core action.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a zero-parameter login tool, it covers behavior, side effects, and failure handling. It doesn't explicitly state return values or confirmation of success, but the description's troubleshooting note ('reported cookie file') implies some status output. Minor gap given no output schema.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
There are zero parameters, so the schema has nothing to explain. The description's mention of 'reported cookie file' and SSO details adds useful context despite no parameters.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Clear verb+resource: performs SSO login in a browser and saves cookies for the Splunk REST API. It is immediately distinguishable from sibling query/dashboard/report tools as an auth setup step.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description makes clear it is the SSO-based auth bootstrap for API calls and even gives recovery steps if the IdP redirect or automation blocks the session. It doesn't explicitly say 'run before other tools', but the context strongly implies it.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
update_alertB
Update an existing alert. Pre-checks edit access; refuses if can_write is false. Requires docsConsulted=true. DOCUMENTATION-FIRST: read the official Splunk docs (use the splunk_docs tool) before writing SPL or a dashboard definition; do not guess syntax or schema.
| Name | Required | Description | Default |
|---|---|---|---|
| app | No | App namespace. Default: the alert's current app. | |
| cron | No | Cron schedule. | |
| name | Yes | Existing alert name. | |
| owner | No | Owner. Default: the alert's current owner. | |
| latest | No | Dispatch latest time. | |
| search | Yes | New SPL. | |
| actions | No | Alert actions. | |
| earliest | No | Dispatch earliest time. | |
| condition | No | Trigger type (see create_alert). | |
| threshold | No | Numeric threshold. | |
| comparator | No | Comparator (see create_alert). | |
| description | No | Optional description. | |
| docsConsulted | Yes | Must be true. | |
| docsReference | No | The doc URL/section you used. | |
| customCondition | No | SPL condition for condition='custom'. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the behavioral burden. It discloses that the tool pre-checks edit access and refuses if can_write is false, and requires docsConsulted=true. However, it does not describe what the update does (e.g., merge vs replace fields), whether it errors on non-existent alerts, or what the return value looks like. It adds some value but leaves significant behavior unspecified.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two concise sentences with no wasted words. The purpose is front-loaded, followed by key preconditions. Every clause earns its place, and the documentation-first policy is stated clearly.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
This is a complex tool with 15 parameters and no output schema. The description covers purpose and preconditions but does not explain update semantics (partial vs full replacement), success indicators, error handling beyond access refusal, or what happens to unspecified fields. Given the complexity, an agent would need more guidance to call it correctly without guessing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% with every parameter having a description. The description reinforces the docsConsulted requirement but adds no new meaning beyond the schema's 'Must be true.' The behavioral notes about access control do not pertain to parameters. The baseline of 3 applies since the schema already documents all parameters thoroughly.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb and resource: 'Update an existing alert.' This clearly distinguishes it from create_alert (since it says 'existing') and get_alert (since it says 'update'). It doesn't explicitly name sibling alternatives, but the purpose is unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage through the verb 'update' and 'existing alert', but it does not explicitly say when to use this tool versus create_alert or other siblings. The documentation-first directive is a how-to guideline, not a tool-selection rule. Preconditions (edit access check, docsConsulted) are behavioral constraints, not usage context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
update_dashboardA
Update an EXISTING dashboard's definition. Pre-checks your edit access and REFUSES if Splunk ACL denies write. Requires docsConsulted=true. DOCUMENTATION-FIRST: read the official Splunk docs (use the splunk_docs tool) before writing SPL or a dashboard definition; do not guess syntax or schema.
| Name | Required | Description | Default |
|---|---|---|---|
| app | No | App namespace. Default: the dashboard's current app. | |
| name | Yes | Existing dashboard name/id. | |
| owner | No | Owner namespace. Default: the dashboard's current owner. | |
| format | No | studio or classic. Auto-detected if omitted. | |
| definition | Yes | New full definition (Studio JSON or Classic XML). | |
| docsConsulted | Yes | Must be true — confirms you read the Splunk docs for this format. | |
| docsReference | No | The doc URL/section you used. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full behavioral burden. It discloses two significant behaviors: it pre-checks edit access and refuses if ACL denies write, and it requires docsConsulted=true. These go beyond the schema and are valuable for an agent. It does not mention replacement semantics (that the definition replaces the entire existing one) or what the success response looks like, which are gaps, but the disclosed behaviors are substantive.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise and front-loaded with the primary purpose. It follows a logical order: purpose, behavioral trait, requirement, and policy. Each sentence adds value, though the documentation-first instruction is somewhat verbose and could be tightened. Overall, it is well-structured and efficient.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's complexity (7 parameters, no output schema, no annotations), the description is not fully complete. It does not state that the definition parameter replaces the entire existing definition (a critical semantic), nor does it describe the success return value or other failure modes beyond ACL denial. The access check and documentation requirement are covered, but an agent would still be uncertain about the full scope of the operation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the baseline is 3. The description reinforces the docsConsulted requirement ('Requires docsConsulted=true') and the documentation-first policy, but these are already captured in the schema's parameter descriptions. No additional semantic value is added beyond what the schema already provides.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description opens with 'Update an EXISTING dashboard's definition,' which is a specific verb and resource that clearly distinguishes it from sibling create_dashboard. The word 'EXISTING' signals the key differentiator, and the focus on 'definition' narrows the scope to the dashboard's content rather than its metadata.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description clearly states the tool is for existing dashboards, which implies it is not for creation, and the context of sibling tools (create_dashboard, get_dashboard) reinforces this. However, it does not explicitly name an alternative or provide a 'when not to use' clause, so the guidance is clear but not fully explicit.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
update_reportA
Update an existing report. Pre-checks edit access; refuses if can_write is false. Requires docsConsulted=true. DOCUMENTATION-FIRST: read the official Splunk docs (use the splunk_docs tool) before writing SPL or a dashboard definition; do not guess syntax or schema.
| Name | Required | Description | Default |
|---|---|---|---|
| app | No | App namespace. Default: the report's current app. | |
| cron | No | Optional cron schedule. | |
| name | Yes | Existing report name. | |
| owner | No | Owner. Default: the report's current owner. | |
| latest | No | Dispatch latest time. | |
| search | Yes | New SPL. | |
| earliest | No | Dispatch earliest time. | |
| description | No | Optional description. | |
| docsConsulted | Yes | Must be true. | |
| docsReference | No | The doc URL/section you used. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description discloses important behavioral traits: it pre-checks edit access and refuses if can_write is false, and it requires docsConsulted=true. It also mandates documentation-first behavior. Since no annotations are provided, the description carries the full burden, and it does so well. It doesn't mention reversibility or side effects, but the pre-check and refusal behavior are significant disclosures. A 4 is appropriate because it goes beyond a simple 'update' statement but doesn't cover all potential side effects.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise and front-loaded with the core action: 'Update an existing report.' It then adds critical behavioral constraints in a compact manner. The documentation-first instruction is a bit long but necessary. It earns a 4 because it's efficient and well-structured, though the documentation-first sentence could be slightly more concise.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's complexity (10 parameters, no output schema, no annotations), the description covers the essential behavioral context: pre-checks, refusal condition, and documentation requirement. It doesn't explain return values, but there's no output schema, so the description isn't required to. It could mention what happens on success or failure, but the refusal condition is a key part. A 4 is appropriate because it's complete enough for an agent to call it correctly, with minor gaps around post-update behavior.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents all 10 parameters. The description adds context for docsConsulted (must be true) and docsReference (the doc URL/section used), which are already in the schema. The description doesn't add much beyond the schema, but the baseline is 3 for high coverage. It does clarify the purpose of docsConsulted and docsReference in the context of the documentation-first rule, which is a slight addition.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's function: 'Update an existing report.' It also distinguishes itself from siblings by mentioning pre-checks and documentation requirements, which are specific to this tool. The verb 'update' and resource 'report' are explicit, and the description adds unique behavioral details that separate it from create_report or get_report.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly states when to use this tool: to update an existing report, and it provides clear prerequisites: pre-checks edit access, refuses if can_write is false, requires docsConsulted=true. It also instructs to read official Splunk docs before writing SPL or dashboard definitions, which is a clear usage guideline. It doesn't explicitly name alternatives, but the context signals and sibling list make it clear this is for updates, not creation or retrieval.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
whoamiA
Show the Splunk username the current session authenticates as. New dashboards are created under this profile.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden for behavioral transparency. It discloses that the tool returns the current username and notes a key behavioral implication: new dashboards are created under this profile. This adds context beyond the name, but it does not describe the response format, potential errors (e.g., if not authenticated), or any side effects. Since it's a read-only identity query, the information provided is adequate but not rich.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is exceptionally concise – two short sentences that pack key information: the primary purpose and a critical contextual implication. Every word serves a purpose, and the most important information is front-loaded. No redundancy or filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's simplicity (no parameters, no output schema, and a single purpose), the description is nearly complete. It tells the agent what the tool returns (username) and why it matters (dashboard creation context). The only minor gap is that it doesn't specify the exact format of the output or behavior when no session exists, but this is a minor omission for such a simple tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool has zero parameters, and the schema coverage is 100% (vacuously). Since there are no parameters to describe, the description does not need to add parameter details. The baseline for zero-parameter tools is 4, and the description appropriately focuses on the tool's purpose and behavior, earning a solid score.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose: to show the Splunk username for the current session. It uses a specific verb 'Show' and resource 'Splunk username'. It also adds relevant context about new dashboards being created under this profile, which helps the agent understand the practical implication.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implicitly conveys when to use this tool – when you need to know the current username, particularly before creating dashboards. However, it does not explicitly mention when not to use it or compare it to alternatives. Given the sibling tools include splunk_login and various create tools, the usage context is implied but not fully developed.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
17 tool updates
v0.1.1- First observed
check_dashboard_access - First observed
create_alert - First observed
create_dashboard - First observed
create_report - First observed
get_alert - First observed
get_dashboard - First observed
get_report - First observed
list_alerts - First observed
list_dashboards - First observed
list_reports - First observed
query_splunk - First observed
splunk_docs - First observed
splunk_login - First observed
update_alert - First observed
update_dashboard - First observed
update_report - First observed
whoami
TDQS
Scored across 17 tools
Most tools map cleanly to distinct resources and actions (dashboards, reports, alerts, auth, docs, query). The only mild overlap is get_dashboard already including a can_write flag while check_dashboard_access exists as a separate pre-check tool.
The set follows a clear verb_noun pattern for the main resources (list_dashboards, get_dashboard, create_report, update_alert). A few outliers like splunk_login, splunk_docs, whoami, and query_splunk break the pattern but are still recognizable.
17 tools is on the heavier side but justifiable given three resources (dashboards, reports, alerts) plus auth, query, and docs. Each tool has a clear role, though the count is at the upper edge of ideal.
Core lifecycle is covered for dashboards, reports, and alerts (list/get/create/update), but there are no delete tools for any resource, and sharing/permission management is only checkable, not settable. Search is present but saved search lifecycle lacks deletion or duplication.
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Connectors
Dashboards as data. Author, validate, render, and share dvt dashboards from any MCP client.
- InfrapageOAuthpage.infra
Read-only access to your Infrapage dashboards: pages, widgets, live values, weekly recaps.
Build dashboards on your own data, including multi-customer views with per-customer login.
Manage brainCloud apps, cloud code, hooks and servers; API lookups to help generate client code.
Related MCP Servers
- FlicenseNot gradedqualityDmaintenanceEnables AI assistants to interact with Splunk Enterprise and Splunk Cloud instances through standardized MCP interface. Supports executing SPL queries, managing indexes and saved searches, listing applications, and retrieving server information with flexible authentication options.-
- FlicenseNot gradedqualityNot gradedmaintenanceEnables interaction with Tableau Cloud and Tableau Server through the REST API, supporting workbook management, view queries, extract refreshes, and content search operations.-
- FlicenseNot gradedqualityNot gradedmaintenanceEnables users to interact with Splunk instances to execute SPL queries, manage saved searches, and monitor system health. It provides a clean interface for listing dashboards, indexes, and logs through the Model Context Protocol.152-
- AlicenseNot gradedqualityDmaintenanceEnables AI assistants to search, manage, and analyze data in Splunk instances through the Model Context Protocol. Supports SPL queries, index management, alerts, dashboards, and more.1Apache 2.0