This MCP server has critical definition quality issues that prevent safe production use. While it exposes 13 tools, most lack proper schemas, descriptions are minimal or missing, and there are severe security and composition problems. Tool naming is inconsistent (mcp__atlassian__* prefix is non-standard), parameters often lack type information, and error handling is absent. The server mixes file operations, user interaction, agent delegation, and Atlassian API access in ways that violate single-responsibility and composition patterns. Only 3 tools have both description AND input schema with typed parameters. Atlassian tools expose wildcard access and delegation without permission gates.
Tools (13)
AskUserQuestionread onlysource verified53/100
User interaction for asking clarification questions
Globread onlysource verified65/100
File globbing for codebase exploration
Grepread onlysource verified72/100
Search for patterns within files
Readread onlysource verified73/100
File operations for reading files from the codebase
Taskwritesource verified35/100
Subagent delegation tool for using specialist agents
Writewritesource verified70/100
Create and write files
mcp__atlassian__*writeauthsource verified0/100
Wildcard access to all Atlassian MCP tools including Confluence operations
Wildcard tool access (mcp__atlassian__*) with no schema, no description, and no permission gates. This allows unrestricted access to all Atlassian resources including destructive Confluence operations without any validation or audit trail.
Task tool (subagent delegation) has no input schema defined. Parameters 'agent' and 'task' lack type definitions, constraints, or validation rules. This prevents the LLM from understanding valid agent names or task formats, and invites hallucinated agent names.
Six Atlassian tools (getAccessibleAtlassianResources, getJiraProjects, getJiraIssue, searchJiraIssues, updateJiraIssue, and the wildcard) have no visible input schema. Cannot verify parameter types, constraints, or required vs optional fields. This violates the schema documentation baseline.
Rename all mcp__atlassian__* tools to follow verb_noun convention: get_jira_projects, create_jira_issue, update_jira_issue, search_jira_issues, get_jira_issue, get_atlassian_resources. Remove the mcp__ prefix and the __ separator.
Document input schemas for all Atlassian tools. At minimum: define issueType as an enum (Epic, Story, Task, Bug, ...), status as an enum (open, in_progress, resolved, closed), and make projectKey and cloudId required. Use JSON Schema type definitions.
Add comprehensive descriptions to all tools. Each should answer: (1) What does it do? (2) When to use it instead of similar tools? (3) What does it return? (4) Any prerequisites? Target 50-200 characters per the production baseline.
Document output schemas for all tools. Example for createJiraIssue: {issue_key: string, issue_id: string, issue_url: string}. Example for searchJiraIssues: {total_count: number, results: [{issue_key, summary, status}], has_more: boolean, next_cursor: string}.
Add error handling guidance to all tools. Example: 'If the issue is not found, try search_jira_issues() with a broader query. If you lack a project key, call get_jira_projects() first.'
Add permission gates to Write, Task, and Atlassian write tools (createJiraIssue, updateJiraIssue). Document what permissions are required ('write:files', 'write:jira'). Verify caller has authority before executing.
Remove or constrain the wildcard tool mcp__atlassian__*. It allows unrestricted access to all Atlassian operations without validation. If needed, explicitly enumerate tools instead of using wildcards.
Spec posture evidence
Inferred effective spec: <=2025-11-25.
Relies on Logging (deprecated) - log to stderr or use OpenTelemetry
Tool names violate verb_noun convention. mcp__atlassian__* prefix is non-standard and does not start with an action verb (e.g., 'get_jira_projects', 'create_jira_issue'). The prefix obscures intent and makes it harder for LLMs to disambiguate tools. LLMs struggle with unprefixed, non-verb-starting names.
AskUserQuestion tool has vague name and minimal description ('User interaction for asking clarification questions'). Does not explain when to use it vs other tools, what the response format is, or how the user's answer is returned. LLM cannot determine proper invocation context.
No error handling documented for any tool. Tools provide no guidance on what to do if a Jira API call fails, file read fails, or user question times out. Errors lack categorization (retryable vs user-fixable vs fatal). Missing recovery guidance like 'Try search_users() first if you only have a name.'
No output schemas documented for any tool. LLM does not know what fields to expect from createJiraIssue (issue_id, issue_key, URL?) or searchJiraIssues (how many results? pagination? field names?). Undocumented output prevents downstream tool chaining and planning.
Glob, Read, and Write tools lack any description of input validation, path traversal protection, or security constraints. Write tool especially needs explicit permission gating and dry-run confirmation. No mention of which directories are safe to write to or read from.
createJiraIssue accepts a 'parent' parameter but no description of valid formats (issue key? issue ID? URL?). No constraint list of valid issue types. No indication of which fields are required vs optional. LLM cannot predict which fields to omit or how to reference parent issues.
searchJiraIssues expects a 'query' parameter described as 'JQL query to search for issues' but provides no examples, syntax hints, or link to JQL documentation. LLM must either guess JQL syntax or invoke the tool blindly. No pagination parameters visible (limit, offset, cursor).
Tool mixing and composition violation: Write, Read, Grep, and Glob tools handle filesystem operations, while Task handles agent delegation, while AskUserQuestion handles user interaction, while Atlassian tools handle external API access. No clear separation of concerns. An agent using these tools must juggle file I/O, human interaction, and third-party APIs in the same call context.
ReadWriteGrepGlobTaskAskUserQuestion
Add rate limiting and audit logging to all tools. Log who called what, with which parameters, at what time, and what happened. This enables compliance and incident response.
For Task tool, provide an enum of valid agent names (e.g., 'product_manager', 'project_lead', 'developer'). Add a description explaining what each agent specializes in and when to delegate.
For AskUserQuestion, clarify the response format. Does it return a string? Can the user decline to answer? What happens on timeout? Does the LLM see the user's answer in the next message or as a tool result?
For Read/Write/Glob tools, explicitly document path constraints (e.g., 'Only read from /codebase; writing restricted to /output'). Add path traversal protection warnings.
For searchJiraIssues, add pagination parameters (limit: 1-100, default 20; offset or cursor). Document the response includes a total_count and has_more flag so the LLM can paginate results.
For createJiraIssue, make description optional if your API allows it. Clarify parent format (expects 'PROJ-123' issue key, not internal ID).
Consider splitting Task into multiple tools: delegate_to_product_manager, delegate_to_project_lead, delegate_to_developer. This is more explicit and prevents hallucinated agent names.
Consider splitting Atlassian tools by resource type and operation: get_jira_projects, get_jira_project, list_jira_issues, create_jira_issue, update_jira_issue, get_confluence_pages, create_confluence_page, etc. Wildcard access is dangerous and unmaintainable.