Skip to main content
Glama
Ocuco
by Ocuco

Hive MCP Server

A Model Context Protocol (MCP) server that provides integrations for Jira and Sourcegraph. This allows LLMs to interact with Jira issues and search code across repositories using Sourcegraph.

Package name: hive-mcp
Tool prefix: Service name (e.g., jira_*, sourcegraph_*)
Full tool names in LLM: mcp__hive-mcp__jira_get_issue etc.

Features

Jira Integration

  • Get Issue: Retrieve detailed information about Jira issues

  • Download Attachments: Download attachments from Jira issues

  • Add Comments: Post comments to Jira issues

Sourcegraph Integration

  • Code Search: Search code across repositories with powerful query operators (GraphQL)

  • Deep Search: AI-powered conversational code search that understands natural language questions (REST API v6.7+)

Related MCP server: Jira MCP Server

Installation

Prerequisites

  • Node.js 18 or higher

  • Jira Server/Data Center instance with API access

  • Sourcegraph instance with API access

  • GitHub account with access to the @ocuco organization

Install from GitHub Packages

This package is published as a private package on GitHub Packages. To install it, you need to authenticate with GitHub first.

1. Create a GitHub Personal Access Token (PAT)

  1. Go to GitHub Settings > Developer Settings > Personal Access Tokens > Tokens (classic)

  2. Click "Generate new token" > "Generate new token (classic)"

  3. Give it a descriptive name (e.g., "NPM Package Access")

  4. Select the following scopes:

    • read:packages - Download packages from GitHub Package Registry

    • write:packages - Upload packages to GitHub Package Registry (only needed for publishing)

  5. Click "Generate token" and copy the token

2. Configure NPM to use GitHub Packages

Create or edit your ~/.npmrc file (in your home directory) and add:

@ocuco:registry=https://npm.pkg.github.com
//npm.pkg.github.com/:_authToken=YOUR_GITHUB_TOKEN

Replace YOUR_GITHUB_TOKEN with the token you created in step 1.

Note: On Windows, your home directory is %USERPROFILE% (usually C:\Users\YourUsername)

3. Install the package

npm install -g @ocuco/hive-mcp

Install from Source

git clone https://github.com/ocuco/hive-mcp.git
cd hive-mcp
npm install
npm run build
npm link

Configuration

Create a .env file in your project root or set environment variables:

# Jira Configuration (On-Premise Server/Data Center)
JIRA_BASE_URL=https://jira.your-company.com
JIRA_API_TOKEN=your_personal_access_token

# Sourcegraph Configuration
SOURCEGRAPH_URL=https://sourcegraph.company.com
SOURCEGRAPH_TOKEN=your_sourcegraph_token

Getting API Credentials

Jira Personal Access Token (PAT)

For Jira Server/Data Center on-premise installations:

  1. Log in to your Jira instance

  2. Navigate to your ProfilePersonal Access Tokens

  3. Click Create token

  4. Give it a name (e.g., "MCP Server Access")

  5. Set expiration date (optional, recommended for security)

  6. Click Create and copy the token

  7. Use this token as JIRA_API_TOKEN

Important Notes:

  • Personal Access Tokens are available in Jira 8.14 and later

  • For older versions, contact your Jira administrator for API access options

  • Keep your token secure and never commit it to version control

  • The token is used with Bearer authentication

  • Self-signed SSL certificates are automatically handled

Sourcegraph Token

  1. Go to your Sourcegraph instance

  2. Navigate to Settings > Access tokens

  3. Create a new access token

  4. Copy the token and use it as SOURCEGRAPH_TOKEN

Usage with Claude Desktop

Add to your Claude Desktop configuration file:

MacOS: ~/Library/Application Support/Claude/claude_desktop_config.json Windows: %APPDATA%\Claude\claude_desktop_config.json

{
  "mcpServers": {
    "hive-mcp": {
      "command": "node",
      "args": ["/path/to/hive-mcp/dist/index.js"],
      "env": {
        "JIRA_BASE_URL": "https://jira.your-company.com",
        "JIRA_API_TOKEN": "your_personal_access_token",
        "SOURCEGRAPH_URL": "https://sourcegraph.company.com",
        "SOURCEGRAPH_TOKEN": "your_sourcegraph_token"
      }
    }
  }
}

Or if installed globally from GitHub Packages:

{
  "mcpServers": {
    "hive-mcp": {
      "command": "hive-mcp",
      "env": {
        "JIRA_BASE_URL": "https://jira.your-company.com",
        "JIRA_API_TOKEN": "your_personal_access_token",
        "SOURCEGRAPH_URL": "https://sourcegraph.company.com",
        "SOURCEGRAPH_TOKEN": "your_sourcegraph_token"
      }
    }
  }
}

Note: After installing from GitHub Packages with npm install -g @ocuco/hive-mcp, the command name remains hive-mcp (defined in package.json bin field).

Available Tools & Resources

Tools

All tools are prefixed with their service name for easy identification in LLM tool lists.

Full name format in LLM: mcp__hive-mcp__<tool_name>

Jira Tools

jira_get_issue

Get detailed information about a Jira issue.

Parameters:

  • issueIdOrKey (string): The issue key (e.g., "PROJ-123") or ID

Example:

{
  "issueIdOrKey": "PROJ-123"
}

jira_get_comments

Get all comments from a Jira issue. Returns comment history with authors and timestamps.

Parameters:

  • issueIdOrKey (string): The issue key (e.g., "PROJ-123") or ID

Returns:

  • Total comment count

  • Array of comments with:

    • Author name and email

    • Created and updated timestamps

    • Comment body (Atlassian Document Format)

Example:

{
  "issueIdOrKey": "PROJ-123"
}

jira_add_comment

Add a comment to a Jira issue.

Parameters:

  • issueIdOrKey (string): The issue key (e.g., "PROJ-123") or ID

  • comment (string): The comment text to add

Sourcegraph Tools

sourcegraph_search_code

Search code across repositories.

Parameters:

  • query (string): Search query with optional operators

    • repo:owner/name - Filter by repository

    • file:path - Filter by file path

    • lang:python - Filter by language

    • And more...

Example:

{
  "query": "function handleRequest repo:myorg/myrepo lang:typescript"
}

AI-powered Deep Search using natural language questions. This feature creates a conversation with Sourcegraph's AI agent (requires v6.7+).

Parameters:

  • question (string): Natural language question about your codebase

  • timeout_seconds (number, optional): Max wait time for answer (default: 60)

Example:

{
  "question": "How does authentication work in this codebase?"
}

Response includes:

  • AI-generated answer

  • Relevant source code references

  • Suggested follow-up questions

  • Conversation ID for follow-ups

  • Shareable URL

Note: Deep Search is async and may take 10-60 seconds. It uses credits/quota on Sourcegraph Enterprise.


Resources

MCP Resources allow LLMs to read Jira attachments like local files. The server handles caching and download automatically.

Resource URI Format:

jira://issues/{issueKey}/attachments

List all attachments for a specific Jira issue.

Example:

jira://issues/PROJ-123/attachments

Returns:

  • List of all attachments with metadata

  • Each attachment includes its resource URI for direct access

jira://attachments/{attachmentId}

Read specific attachment content.

Example:

jira://attachments/10041

Behavior:

  • Images <500KB: Returns image blob (viewable directly)

  • Files <500KB: Returns base64 content

  • Files >500KB: Returns metadata + warning

  • Automatic caching: Small files cached for 5 minutes

Advantages:

  • ✅ LLM reads attachments like local files

  • ✅ No repeated downloads (smart caching)

  • ✅ No authentication errors (handled by MCP)

  • ✅ Automatic size management

Usage in Claude:

"Read jira://attachments/10041"
"Show me all attachments from PROJ-123"

Development

# Install dependencies
npm install

# Build
npm run build

# Development mode (watch for changes)
npm run dev

# Run the server
npm start

Publishing to GitHub Packages

Note: Only maintainers with write access to the @ocuco organization can publish.

Prerequisites for Publishing

  1. Create a GitHub Personal Access Token with write:packages scope (see Installation section)

  2. Ensure your local ~/.npmrc has the authentication configured

  3. Make sure you're logged in to npm: npm whoami --registry=https://npm.pkg.github.com

Publishing Steps

  1. Update version (choose one):

    npm version patch  # 1.0.0 -> 1.0.1
    npm version minor  # 1.0.0 -> 1.1.0
    npm version major  # 1.0.0 -> 2.0.0
  2. Build the project:

    npm run build
  3. Publish to GitHub Packages:

    npm publish
  4. Push changes and tags:

    git push
    git push --tags

Package Visibility

The package is set as private ("access": "restricted" in publishConfig). Only members of the @ocuco organization with proper permissions can:

  • View the package

  • Download and install the package

  • Publish new versions (with write access)

To manage package access:

  1. Go to the package page on GitHub

  2. Find the hive-mcp package

  3. Go to "Package settings" > "Manage Actions access" to configure permissions

Architecture

hive-mcp/
├── src/
│   ├── index.ts              # MCP server entry point
│   ├── config.ts             # Environment configuration
│   ├── types.ts              # Shared types
│   ├── jira/
│   │   ├── client.ts         # Jira REST API client
│   │   ├── tools.ts          # Jira MCP tools
│   │   └── types.ts          # Jira types
│   └── sourcegraph/
│       ├── client.ts         # Sourcegraph GraphQL client
│       ├── tools.ts          # Sourcegraph MCP tools
│       └── types.ts          # Sourcegraph types
└── dist/                     # Compiled output

License

MIT

Contributing

Contributions are welcome! Please feel free to submit a Pull Request.

Available Tools

7 tools
jira_add_commentA

Add a comment to a Jira issue

ParametersJSON Schema
NameRequiredDescriptionDefault
commentYesThe comment text to add
issueIdOrKeyYesThe issue key (e.g., PROJ-123) or ID

TDQS

A3.5/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description must disclose behavioral expectations. It only states the action without mentioning permissions, whether it appends to existing comments, what response to expect, or any side effects, leaving a significant transparency gap.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, concise sentence that gets straight to the point with no redundant or unnecessary information.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The tool is relatively simple with two well-documented parameters, but the lack of annotations and output schema means the description should provide more context about behavior and return values. It is minimally adequate for a simple add-comment operation without being fully comprehensive.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema provides 100% coverage with clear descriptions for both parameters (comment text and issue key/ID). The description adds no additional parameter context beyond what the schema already provides, meeting the baseline for high schema coverage.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description uses a specific verb ('Add') and resource ('comment to a Jira issue'), clearly distinguishing it from sibling tools like jira_get_comments which retrieves comments, and jira_get_issue which fetches issue details.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description clearly states the tool's purpose, making its primary use case obvious. However, it does not explicitly mention when to avoid this tool or use an alternative, relying on the sibling tool names to imply differentiation.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

jira_get_commentsA

Get comments from a Jira issue with pagination support. Returns comment history with authors, timestamps, and content. Use pagination parameters to control response size and avoid token limits.

ParametersJSON Schema
NameRequiredDescriptionDefault
startAtNoThe index of the first comment to return (0-indexed). Default: 0
maxResultsNoMaximum number of comments to return per request (max: 100). Default: 5
issueIdOrKeyYesThe issue key (e.g., PROJ-123) or ID

TDQS

A4/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description must carry the burden of behavioral disclosure. It does explain that the tool returns authors, timestamps, and content, and hints at potentially large responses via pagination advice. However, it does not disclose sorting order, error behavior, or permission requirements, which would be helpful for a full understanding.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is three concise sentences, each with a clear purpose: stating the primary function, describing the returned data, and offering usage guidance. There is no fluff or redundancy, and the most important information is front-loaded.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

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 adequately covers the purpose, return content, and pagination support. It lacks specifics about pagination response structure (e.g., total count) but overall provides enough context for an agent to understand and use the tool correctly.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

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 only adds a general note that pagination parameters control response size, reinforcing what the schema already states. It does not provide additional meaning or context beyond the parameter descriptions.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description begins with 'Get comments from a Jira issue', clearly specifying the action and resource. It distinguishes from sibling tools like jira_add_comment (write) and jira_get_issue (issue details) by focusing on reading comment history. Also mentions pagination support and return contents.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The purpose makes clear when to use this tool: when needing comment history for an issue. It also advises using pagination parameters to control response size and avoid token limits, which is practical guidance. However, it doesn't explicitly state when not to use it or compare with alternatives like jira_add_comment.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

jira_get_issueA

Get detailed information about a Jira issue by its key or ID (e.g., PROJ-123). IMPORTANT: Use the fields parameter to control response size and avoid token limits. Default fields provide essential info (summary, status, priority, assignee, reporter, created, updated, issuetype) without bloating response.

ParametersJSON Schema
NameRequiredDescriptionDefault
fieldsNoOptional array of specific field names to fetch. Omit this parameter to use default minimal fields (recommended: summary, status, priority, assignee, reporter, created, updated, issuetype). Only specify fields if you need additional information. For comments use jira_get_comments tool, for attachments use jira_list_attachments tool. Common fields: description, labels, components, fixVersions, resolution, resolutiondate, duedate, environment, customfield_*
issueIdOrKeyYesThe issue key (e.g., PROJ-123) or ID

TDQS

A4.5/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the burden of behavioral disclosure. It reveals that the default response includes a minimal set of fields to avoid token limits, which is a significant behavioral trait. However, it does not mention error handling, authentication, or response shape beyond field listings, leaving some gaps.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is three sentences, front-loading the core purpose and then providing essential usage tips. Every sentence contributes value: the first identifies the resource, the second and third explain parameter usage and default behavior. No fluff or repetition.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple read tool with only two parameters and no output schema, the description plus schema cover the essential aspects: how to identify the issue, what default fields are returned, how to customize fields, and which sibling tools to use for related operations. Error handling and auth are not explicitly covered, but these are commonly inferred and not critical for a basic retrieval tool.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% since both parameters have detailed descriptions in the schema. The description adds a note about using 'fields' to control response size, but this duplicates information already present in the schema description. With high schema coverage, the baseline of 3 is appropriate; the description does not enrich parameter semantics beyond what the schema provides.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states 'Get detailed information about a Jira issue by its key or ID', which is a specific verb+resource combination. The tool's purpose is unambiguous and inherently distinct from sibling tools like jira_get_comments and jira_list_attachments, especially since the schema explicitly mentions these alternatives.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The schema explicitly directs users to jira_get_comments for comments and jira_list_attachments for attachments, providing clear alternative tool guidance. Additionally, the description advises using the fields parameter to control response size and indicates when to add fields ('Only specify fields if you need additional information'), effectively stating when to use this tool's features versus defaults.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

jira_list_attachmentsA

List all attachments for a Jira issue. Returns attachment metadata including IDs, filenames, sizes, and mime types.

ParametersJSON Schema
NameRequiredDescriptionDefault
issueKeyYesThe issue key (e.g., PROJ-123)

TDQS

A4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries full responsibility. It discloses that the tool returns metadata (IDs, filenames, sizes, mime types) and implicitly indicates it is a read-only list operation. It does not mention edge cases like pagination or empty results, but for a simple listing tool this is sufficient.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two concise sentences with no wasted words. The first sentence states the core purpose, and the second clarifies the return value, making it optimally front-loaded.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

This is a low-complexity tool with a single parameter and no output schema. The description adequately covers the tool's purpose and return value, though it could mention potential limitations (e.g., whether attachments are paginated) to be fully complete.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema already provides 100% coverage for the single parameter (issueKey) with an example format. The description adds no additional parameter semantics, 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.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description uses a specific verb ('List') and identifies the exact resource ('attachments for a Jira issue'), clearly distinguishing it from sibling tools like jira_read_attachment (which implies reading content) and jira_get_comments. It also names the output type (metadata) and key fields.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies usage (to list attachments and get their metadata) but provides no explicit guidance on when to prefer this over jira_read_attachment or other siblings. It does not state exclusions or alternatives, though the verb 'List' helps infer scope.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

jira_read_attachmentA

Read a specific Jira attachment by ID. Returns the attachment content (images as blob, other files as base64). Files larger than 500KB will return metadata only.

ParametersJSON Schema
NameRequiredDescriptionDefault
attachmentIdYesThe attachment ID (e.g., 10041)

TDQS

A4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries the full burden. It discloses non-obvious behaviors: images return as blob, other files as base64, and files over 500KB return only metadata. This gives the agent clear expectations about output variations, though it omits error handling and authentication requirements.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is three concise sentences, front-loaded with the purpose. Every sentence contributes: purpose, return format, and size threshold. No filler or redundant content.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple one-parameter read tool with no output schema, the description covers the essential aspects: action, return format, and size limit. It lacks explicit error-case handling, but the tool is simple enough that the description is sufficiently complete for an agent to select and invoke it correctly.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema already provides a description for attachmentId with an example, achieving 100% coverage. The description's 'by ID' adds no new semantic meaning beyond the schema, so it stays at the baseline for high schema coverage.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description opens with a specific verb and resource: 'Read a specific Jira attachment by ID.' This clearly identifies the action and target. It also distinguishes itself from sibling jira_list_attachments by focusing on reading a single attachment's content rather than listing.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies usage when an attachment ID is known and content is needed, but it does not explicitly contrast with alternatives like jira_list_attachments or state when not to use this tool. The size-limit note provides some contextual boundary, but not a direct usage guide.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

sourcegraph_search_codeB

Search code across repositories using Sourcegraph. Supports various search operators like repo:, file:, lang:, count:, patterntype:, etc.

ParametersJSON Schema
NameRequiredDescriptionDefault
queryYesThe search query. Can include operators like "repo:owner/name", "file:path", "lang:python", "count:50", "patterntype:literal" (default), "patterntype:regexp", or "patterntype:structural". Examples: "payment count:50", "function handleRequest repo:myorg/myrepo", "func.*Handler patterntype:regexp"

TDQS

B3.1/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the full burden for behavioral disclosure. It only states that it searches code and supports operators, but does not disclose potential side effects, rate limits, authentication requirements, or limitations such as result caps or default patterns.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is concise, two sentences long, and front-loaded with the primary purpose. There is no filler or redundant content.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a single-parameter tool with a rich schema, the description covers the core purpose and operator support. However, it lacks behavioral context (e.g., limitations) and does not guide the user toward or away from the sibling tool, making it incomplete for a tool in a contextual set.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The schema description for the query parameter is very detailed, listing operators and examples. The tool description adds only a general mention of operators, which does not exceed what the schema already provides. With 100% schema coverage, the baseline of 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool's function: 'Search code across repositories using Sourcegraph.' This is a specific verb and resource. However, it does not distinguish it from the sibling tool sourcegraph_deep_search, so it doesn't fully differentiate.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

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 the sibling sourcegraph_deep_search. The description mentions supported operators but does not provide context for selecting this tool over alternatives, such as when a deep search is needed.

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.

  1. 7 tool updatesv1.0.0
    • First observedjira_add_comment
    • First observedjira_get_comments
    • First observedjira_get_issue
    • First observedjira_list_attachments
    • First observedjira_read_attachment
    • First observedsourcegraph_deep_search
    • First observedsourcegraph_search_code

TDQS

A3.8/5.0

Scored across 7 tools

Disambiguation5/5

The Jira and Sourcegraph tools are cleanly separated by prefix and purpose. Each Jira tool targets a distinct resource (issue, comments, attachments), and the two Sourcegraph tools are clearly differentiated by search mode.

Naming Consistency5/5

All tool names follow a consistent snake_case pattern with a service prefix (jira_ or sourcegraph_) followed by a clear verb_noun structure (e.g., get_issue, add_comment, search_code). No mixed conventions.

Tool Count4/5

The 7-tool count is within the ideal range, but the server spans two distinct domains (Jira and Sourcegraph), which slightly dilutes focus. Still, each tool earns its place for basic workflows.

Completeness3/5

The Jira coverage lacks core operations like create_issue, update_issue, or delete_issue, limiting workflow completion. Sourcegraph only offers search and deep search, with no direct file retrieval or repository browsing, leaving notable gaps for a development tool.

Maintenance

ActivityInactive
ResponsivenessNo issues

Related MCP Connectors

Related MCP Servers