klaxon
Provides a Slack bot with slash commands to interact with the incident management system, allowing users to query, create, and update incidents through conversational agent commands.
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., "@klaxonCreate a new incident for API latency spike"
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.
Klaxon
Incident management desk with a SQLite-backed issue database, REST APIs, MCP tools, and a Slack slash-command agent.
Upstream systems and GitHub are simulated — ingest and agent actions are logged as side effects, not sent to real services.
Quick start
cd /Users/alicabukel/Documents/GitHub/klaxon
python -m venv .venv && source .venv/bin/activate
pip install -e ".[dev]"
cp .env.example .env
klaxon-seed # sample code + data issues
klaxon-api # http://127.0.0.1:3000 (docs at /docs)pytest -qRelated MCP server: P12 SRE Ops MCP Server
Layout
src/klaxon/
db/ models, repository, conversation sessions
api/ FastAPI REST + Slack route registration
mcp/ FastMCP tool server (stdio)
agent/ LangGraph agent + Slack session wrapper
slack/ OAuth, signatures, commands, events (kiwipi-style)
seed.py sample incidents
manifest.yaml Slack app definitionREST API
Method | Path | Purpose |
|
| List / create |
|
| Detail / update |
|
| Status transition |
|
| Comments |
|
| Counts by status / kind / severity / source |
|
| Simulated upstream event |
|
| Simulated action log |
|
| Health |
No auth on the REST surface (local demo).
MCP tools
klaxon-mcp # stdio FastMCP server for Cursor / other agentsTools: search_issues, get_issue, issue_stats, create_issue, update_issue, update_issue_status, add_comment, simulate_upstream_ingest, create_github_issue, list_side_effects.
The Slack agent uses the same tool surface in-process by default. Set KLAXON_USE_MCP=1 to load tools via MCP stdio instead.
Slack bot
Modeled on kiwipi/slack-integration: HTTP (not Socket Mode), OAuth install, HMAC verification, 3-second ack + background work.
Commands
Command | Purpose |
| Talk to the incident agent (queries, creates, updates) |
| End the current conversation for this user+channel |
| Liveness |
Follow-ups: another /klaxon within 30 minutes continues the same session; replies in the bot’s thread also continue it.
Local Slack setup
Fill
.envSlack credentials and generate secrets:
openssl rand -hex 32 # STATE_SECRET
python -c "from cryptography.fernet import Fernet; print(Fernet.generate_key().decode())" # TOKEN_ENCRYPTION_KEYRun the API and expose it:
klaxon-api
ngrok http 127.0.0.1:3000Set
PUBLIC_BASE_URLto the ngrok HTTPS origin (no trailing slash). Create the Slack app frommanifest.yaml(replaceYOUR-DOMAIN). Visithttp://localhost:3000/slack/install.
Without ANTHROPIC_API_KEY, the agent echoes so you can debug Slack plumbing first.
Pitfalls (from kiwipi)
Ack within 3 seconds; do LLM/DB work after.
Verify signatures on raw body bytes.
Dedupe Slack event retries.
Ignore bot/self messages to avoid loops.
Tokens are per-workspace (
team_id).Slack uses mrkdwn, not Markdown.
Data model
Issues have kind of code or data, with kind-specific fields in JSON features. Status audit rows, comments, labels, conversation history, and simulated side effects are stored alongside.
License
Private / experimental.
Available Tools
10 toolsadd_commentC
Add a comment to an issue.
| Name | Required | Description | Default |
|---|---|---|---|
| body | Yes | ||
| author | No | agent | |
| public_id | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations and no description of side effects, permissions, idempotency, or return behavior, the description fails to disclose what happens when the tool is invoked. This is especially problematic for a write operation like adding a comment.
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 extremely concise and contains no unnecessary words. It is a single clear sentence. However, its brevity comes at the cost of omitting essential details, so it is not maximally effective despite being succinct.
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 lacks any context about the 'issue' entity, the expected input format, the result of the operation, or any related constraints. It provides insufficient information for an agent to use the tool correctly in a real workflow.
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 does not include descriptions for any parameters (public_id, body, author), and the tool description also does not explain what each parameter means or how they should be used. The agent receives no semantic information beyond the bare parameter names.
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 (add) and the object (a comment to an issue), which distinguishes it from siblings like create_issue or update_issue. However, it does not elaborate on the nature of the issue or any additional context, so it is not maximally explicit.
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 provides no guidance on when to use this tool versus the sibling tools, nor does it mention any prerequisites, constraints, or typical scenarios. It is a bare statement with no usage context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_github_issueA
Simulate opening a GitHub issue for an incident (logged as a side effect only).
| Name | Required | Description | Default |
|---|---|---|---|
| body | No | ||
| title | No | ||
| public_id | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description itself must disclose behavior. It states that the action is 'logged as a side effect only', which transparently conveys that no actual GitHub issue will be created. This is sufficient transparency, though it does not elaborate on what logging entails.
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, focused sentence that conveys the tool's core purpose and side-effect behavior. It does not waste words and is easy to parse.
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?
While the tool is distinguishable from create_issue via the word 'Simulate', the description lacks essential context about parameter meanings and the relationship to the incident workflow. It also does not clarify when simulation is preferred over real creation, beyond the implicit side-effect distinction.
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 provides only parameter names and types, with no descriptions. The tool description does not explain what public_id, title, or body represent, nor how they are used in the simulation. This leaves the agent guessing about required and optional fields, especially public_id.
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 that this tool simulates opening a GitHub issue for an incident, distinguishing it from real creation. The verb 'Simulate' and phrase 'logged as a side effect only' make the purpose unambiguous, especially alongside the sibling create_issue tool.
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 when to use it: whenever a simulated issue-opening is needed for an incident and no real side effects are desired. It does not explicitly state 'use this instead of create_issue when testing', but the word 'Simulate' and the side-effect note provide clear guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_issueB
Create a new incident issue. labels is comma-separated; features_json is a JSON object.
| Name | Required | Description | Default |
|---|---|---|---|
| kind | No | code | |
| title | Yes | ||
| labels | No | ||
| source | No | agent | |
| status | No | open | |
| assignee | No | ||
| reporter | No | ||
| severity | No | medium | |
| description | No | ||
| features_json | No | {} |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
There are no annotations provided, so the description is the only source of behavioral information. While 'Create' implies a write action, the description does not disclose any side effects, permissions required, potential errors, or what happens upon success (e.g., whether it returns the created issue). This leaves the tool's behavioral impact largely opaque, earning a low score.
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 extremely concise, consisting of two sentences with no redundant words. It packs essential parameter formatting rules into a compact format, making it easy to parse and remember. There is no fluff or unnecessary elaboration, which is ideal for a tool description.
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 gives the core purpose and a few parameter format hints, but it lacks context about the expected output (despite having an output schema), possible error conditions, or how this tool fits into the broader workflow alongside siblings like update_issue_status and add_comment. It does not clarify the difference between this and create_github_issue. This leaves gaps that an agent would need to infer, making the description moderately complete.
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 provides zero description coverage for the 10 parameters, so the description is the only source of meaning. It clarifies only two parameters (labels and features_json), while the remaining eight (kind, title, source, status, assignee, reporter, severity, description) have no semantic explanation. This is insufficient for an agent to confidently populate many fields, hence a low 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 verb ('Create') and the object ('a new incident issue'), which precisely conveys the tool's primary function. It also distinguishes itself from sibling tools like search_issues, get_issue, and update_issue by focusing on creation, and the mention of 'incident' helps differentiate it from create_github_issue.
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 provides some usage guidance by specifying that labels must be comma-separated and features_json must be a JSON object, which helps format those parameters correctly. However, it does not explicitly state when to use this tool versus alternatives like create_github_issue, nor does it mention any prerequisites or typical use cases. The guidance is partially present but not comprehensive.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_issueA
Get full details for an issue by public_id (e.g. INC-0001).
| Name | Required | Description | Default |
|---|---|---|---|
| public_id | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Since no annotations are provided, the description carries the burden. The verb 'Get' clearly indicates a read-only operation with no side effects. However, it does not explicitly state that it is non-destructive or what happens if the issue is not found, which would be more transparent.
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, clear sentence with no unnecessary words. It is well-structured and directly conveys the purpose and the parameter. The example is concise and helpful without adding bulk.
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 one-parameter read operation, the description is adequately complete. The output schema is separate, so return values are not required in the description. It could mention error handling or explicit output shape, but the core functionality is well covered. Given the tool's simplicity, it is sufficiently complete.
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 provides no description for the 'public_id' parameter, but the tool description compensates by explaining it is the issue identifier and giving an example format (e.g. INC-0001). This is sufficient for a single, self-explanatory parameter, though a schema-level description would be ideal.
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: 'Get full details for an issue by public_id'. It specifies the resource (issue), the exact identifier needed (public_id), and even provides a format example (e.g. INC-0001). This is specific and distinguishes it from sibling tools like search_issues or issue_stats.
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 when to use it (when you have a public_id and need full details), but it does not explicitly mention alternatives or conditions for using other tools. For example, it does not say to use search_issues when the ID is unknown. Some guidance on sibling tools would improve clarity.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
issue_statsA
Aggregate issue counts by status, kind, severity, or source.
Optional since/until are ISO-8601 timestamps.
| Name | Required | Description | Default |
|---|---|---|---|
| since | No | ||
| until | No | ||
| group_by | No | status |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description must carry the burden of behavioral disclosure. It indicates a read-only aggregation operation through 'Aggregate counts' but does not explicitly state that issues are not modified, nor does it disclose any limits, pagination, or error behavior. The ISO-8601 note for timestamps is useful but pertains to parameters, not behavior.
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 zero filler. The core purpose is front-loaded, and the timestamp format detail is added only as needed. It is appropriately sized for a simple aggregation 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?
Given the tool's simplicity, an output schema, and all-optional parameters, the description covers the essential context: what it aggregates, by which dimensions, and the timestamp format. Minor gaps like inclusivity of since/until are not critical for a counts tool, and the output schema handles return structure.
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 0%, so the description must compensate. It explains that since/until are ISO-8601 timestamps and implies group_by accepts status, kind, severity, or source. However, it does not explicitly link these values to the group_by parameter or list all possible values, leaving some ambiguity for an agent.
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 uses a specific verb ('Aggregate') and resource ('issue counts') and lists grouping dimensions (status, kind, severity, or source). This clearly differentiates it from sibling tools like search_issues (which likely returns lists) and get_issue (single issue). However, it does not explicitly name an alternative or state what it is not, so it is not a 5.
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 for count-based aggregation rather than listing, but it does not explicitly say when to use this tool versus search_issues or get_issue. There is no mention of exclusions or prerequisites, leaving the decision to the agent's inference.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_side_effectsB
List simulated side effects, optionally filtered by issue public_id.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | ||
| public_id | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The verb 'list' implies a read-only operation, but the description does not explicitly state that it has no side effects, nor does it mention any permissions, limitations, or potential impacts. There are no annotations to clarify behavior, so this remains ambiguous.
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 action and object. It does not waste words, though it could benefit from slightly more detail. The structure is clear and easy to parse.
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 covers the core action and filter, but lacks details about the output structure, pagination behavior, or any nuances like sorting or default ordering. Without these, an agent might not fully understand what to expect when calling this 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 schema provides only titles for the parameters (Limit, Public Id) with no descriptions. The description text adds that public_id is for filtering by issue, but does not clarify its format, purpose, or how limit affects results. Overall, parameter coverage is low.
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 'List' and the resource 'simulated side effects', and it specifies an optional filter by issue public_id. This distinguishes it from sibling tools like search_issues or get_issue, which have different purposes.
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 gives minimal guidance on when to use this tool, only mentioning the optional filter. It does not explain when to prefer this over alternatives like search_issues or get_issue, nor does it provide any usage context or examples.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
search_issuesA
Search incident issues by text, kind, status, or severity.
| Name | Required | Description | Default |
|---|---|---|---|
| kind | No | ||
| limit | No | ||
| query | No | ||
| status | No | ||
| severity | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The term 'Search' suggests a read-only operation, and no destructive behavior is indicated. However, without annotations or additional detail, the agent is not told whether results are ordered, paginated, filtered by default, or limited in any other way.
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, direct sentence with no redundant content. It front-loads the action and resource, then lists the search dimensions 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?
For a tool with five parameters and no parameter descriptions or annotations, the one-sentence description leaves significant gaps. It does not explain possible field values, output shape, default behavior, or common usage context beyond the bare search action.
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 provides no descriptions or enums for any of the five optional parameters. The description names kind, status, and severity as filters, but does not explain accepted formats, how 'query' maps to text search, or how 'limit' behaves. The agent must guess at parameter semantics.
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 'Search', the resource 'incident issues', and the main criteria: text, kind, status, or severity. It is specific enough to distinguish this tool from siblings like get_issue, issue_stats, and create_issue.
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 identifies the general purpose and searchable fields, but it does not explicitly state when to prefer search_issues over get_issue or issue_stats, nor does it mention narrowing criteria or edge cases. Some inference is required.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
simulate_upstream_ingestC
Simulate an upstream system creating an issue (source=upstream).
| Name | Required | Description | Default |
|---|---|---|---|
| kind | No | code | |
| title | Yes | ||
| severity | No | medium | |
| description | No | ||
| features_json | No | {} | |
| create_github_issue | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden of behavioral disclosure. It says 'simulate' but does not clarify whether a real issue record is created, whether side effects occur (e.g., via create_github_issue parameter), or whether the operation is reversible. This leaves critical behavior ambiguous for a simulation tool.
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, which is concise, but it is underspecified for a tool with six parameters. It lacks structure or any breakdown of inputs, outputs, or side effects. It is more under-specified than concise, earning a low score.
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 has six parameters, one required, and an output schema, yet the description provides no context about expected inputs, return values, or behavioral nuances. It does not explain what the simulated issue represents, how to interpret the output, or when this tool is appropriate. The description is grossly incomplete for the tool's complexity.
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 0%, and the description mentions none of the six parameters (kind, title, severity, description, features_json, create_github_issue). The description provides no semantic meaning beyond the raw schema, failing to compensate for the lack of schema descriptions.
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 action ('simulate an upstream system creating an issue') and includes 'source=upstream', which distinguishes it from generic issue creation tools. However, it does not explicitly name sibling tools or contrast with create_issue, so it is clear but not fully differentiated.
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 like create_issue or simulate_github_issue. It does not mention any prerequisites, exclusions, or conditions that would prompt an agent to select this tool. The context is implied but not stated.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
update_issueC
Update fields on an existing issue.
| Name | Required | Description | Default |
|---|---|---|---|
| title | No | ||
| labels | No | ||
| assignee | No | ||
| reporter | No | ||
| severity | No | ||
| public_id | Yes | ||
| description | No | ||
| features_json | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations are absent, so the description must carry the full behavioral burden. It only repeats the verb 'update' from the tool name and gives no information about partial-update semantics, null-field behavior, permissions, or 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 short and front-loaded, but it is under-specified rather than effectively concise. Given eight parameters and no additional context, the single sentence does not provide enough substance to be considered well-structured.
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 eight parameters, no annotations, no usage guidance, and 0% schema coverage, this description is far from complete for reliable tool invocation. The output schema reduces the need to document return values, but the missing parameter semantics and behavioral context remain critical 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 0%, and the description mentions no parameters at all. Fields such as features_json, labels, assignee, reporter, and severity are left entirely to schema titles, providing no practical guidance for constructing a correct update.
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 identifies the action (update) and the target (an existing issue), and 'fields' suggests it is the general update tool rather than update_issue_status. It does not enumerate which fields or explicitly contrast with siblings, so it is clear but not fully differentiated.
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 provides no guidance on when to use this tool versus create_issue, update_issue_status, get_issue, or search_issues. An agent would have to infer usage from the tool name and schema, which is insufficient routing guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
update_issue_statusC
Change an issue's status and optionally add a comment.
| Name | Required | Description | Default |
|---|---|---|---|
| actor | No | agent | |
| status | Yes | ||
| comment | No | ||
| public_id | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are present, and the description only states the basic mutation without noting side effects, permissions, or reversibility. The agent lacks information about what happens when a comment is added or whether status changes are restricted.
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 concise sentence with no unnecessary words or redundant information. It is efficient and directly conveys the core functionality.
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 annotations, no output schema details, and minimal parameter guidance, the description lacks essential context such as valid status values, comment behavior, or expected return. The agent is left with too many unknowns to invoke this reliably.
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 covers 0% of parameter descriptions, and the description does not elaborate on any of the four parameters. Terms like public_id, status, and actor are unexplained, leaving the agent to guess their meaning or allowed values.
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 (change status) and the optional comment. It distinguishes from sibling tools like create_issue and add_comment, though it overlaps with update_issue without explicit differentiation.
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?
No guidance on when to use this tool versus the related update_issue or add_comment tools. The description does not mention conditions or alternatives, leaving the agent to infer usage context.
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. Dates show when Glama detected each change.
10 tool updates
v0.1.0- First observed
add_comment - First observed
create_github_issue - First observed
create_issue - First observed
get_issue - First observed
issue_stats - First observed
list_side_effects - First observed
search_issues - First observed
simulate_upstream_ingest - First observed
update_issue - First observed
update_issue_status
TDQS
Most tools have distinct purposes, but create_issue, create_github_issue, and simulate_upstream_ingest could be confused without careful reading. Descriptions clarify the differences, so ambiguity is limited.
Most names follow a verb_noun pattern (search_issues, get_issue, create_issue), but issue_stats breaks the pattern by using a noun phrase instead of get_issue_stats. Otherwise naming is consistent and predictable.
Ten tools cover the core incident issue workflow without redundancy, staying within a reasonable and focused scope.
The toolset covers create, read, search, update, status changes, comments, and simulated integrations. It lacks an explicit delete/archive operation, but that may be intentionally excluded from the domain.
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
Manage incidents and on-call: list/create/update incidents, who is on call, on-call overrides.
Connect AI assistants to GitHub - manage repos, issues, PRs, and workflows through natural language.
MCP-native AI SRE: ask what's broken in production, get a reviewed GitHub fix PR.
IncidentOracle - 12-tool incident management MCP: triage, BaFin DORA reporting, RCA.
Related MCP Servers
- FlicenseNot gradedqualityDmaintenanceEnables interaction with Incident.io to manage incidents, severities, and health checks via natural language. Provides endpoints for getting and creating incidents.1-
- FlicenseNot gradedqualityDmaintenanceEnables SRE operations through natural language, providing tools to query SLO status, fetch runbooks, query alerts, and manage incidents with audit logging and latency tracking.-
- AlicenseNot gradedqualityCmaintenanceEnables AI assistants to discover, filter, and triage GitHub issues across repositories, with tools for fetching issue details, listing issues by state/labels, and finding related pull requests.1MIT
- AlicenseNot gradedqualityCmaintenanceEnables AI assistants to list, search, and inspect issues on any public GitHub repository via natural language.MIT
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/ali-cabukel/klaxon'
If you have feedback or need assistance with the MCP directory API, please join our Discord server