MCP Server that exposes external tools (Jira, GitHub, PagerDuty, knowledge search) for a LangGraph-based agent in an AI stack
Server defines 7 tools with basic schemas and descriptions, but significant gaps limit production readiness. All tools have descriptions (10-60 chars, mostly short), and input schemas are present with type definitions. However, parameter descriptions are sparse or missing entirely, output schemas are undocumented, and error handling lacks recovery guidance. No tool annotations (readOnlyHint/destructiveHint) despite clear risk classifications. Naming is verb-forward (jira_search, github_get_file) but inconsistent (pagerduty_ack vs pagerduty_incidents). WRITE tools (jira_create, pagerduty_ack) lack confirmation/dry-run patterns. Knowledge_search tool has minimal parameter documentation.
Read a file's contents from a GitHub repository
Get details of a GitHub pull request
Create a new Jira ticket. Requires human confirmation.
Search Jira tickets using JQL query syntax
Search the internal knowledge base for relevant documents
Acknowledge a PagerDuty incident. Requires human confirmation.
List current open PagerDuty incidents
WRITE tools lack confirmation/dry-run patterns. jira_create and pagerduty_ack modify state but have no confirmation step, dry-run mode, or explicit warning in description that they are irreversible.
Output schemas are completely undocumented. No tool specifies what fields are returned, their types, or structure. LLMs cannot plan downstream calls or extract required data.
Parameter descriptions are missing or minimal. 'jql' in jira_search has a description, but 'max_results' does not. 'team' in knowledge_search lacks guidance on valid values. LLMs cannot infer constraints.
Inferred effective spec: <=2025-11-25.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | D | 51 | <=2025-11-25 | v2 |
No tool annotations (readOnlyHint, destructiveHint, idempotentHint) despite clear risk classifications. Clients cannot determine which tools are safe to retry or require user confirmation.
Error handling is not visible in tool definitions. No guidance on retryability, user-fixable errors, or recovery steps. Agents will not know how to respond to failures.