Skip to main content
Glama

contextloom-mcp

Renamed from gitlab-jira-context-mcp; GitHub redirects the old URL.

A local Model Context Protocol (MCP) server that connects GitLab project and merge-request context with Jira work tracking, Confluence pages, Grafana dashboards, and optional GitHub repository context. Jira comments, worklogs, and GitHub file changes require explicit confirmation.

The server uses stdio and runs on your machine. It sends requests only to the service URLs that you configure locally.

Architecture

flowchart LR
  Client[VS Code / MCP Client] <-->|stdio| Server[contextloom-mcp]
  Server -->|REST API| GitLab[GitLab]
  Server -->|REST API| Jira[Jira]
  Server -. optional REST API .-> Confluence[Confluence]
  Server -. optional REST API .-> Grafana[Grafana]
  Server -. optional REST API .-> GitHub[GitHub]
  Config[Local .env] -. credentials and URLs .-> Server

The server never exposes an HTTP endpoint or persists service data. Tokens stay in your local .env file or process environment.

Related MCP server: gitlab-mcp

Included Tools

Tool

Description

gitlab_list_projects

List projects visible to the configured GitLab token.

gitlab_get_project

Get a project by ID or path.

gitlab_list_merge_requests

List merge requests, optionally for one project.

gitlab_get_merge_request

Get a merge request and its metadata.

gitlab_list_pipelines

List recent CI/CD pipelines for a project.

gitlab_get_file

Get a repository file at a branch, tag, or commit.

jira_get_my_issues

List issues assigned to the authenticated Jira user.

jira_get_issue

Get an issue by key, including comments.

jira_search_issues

Search issues with JQL.

jira_get_transitions

List workflow transitions available for an issue.

jira_get_changelog

Get issue status and field history.

jira_list_comments

List comments on an issue with startAt pagination.

jira_list_worklogs

List worklog entries on an issue with startAt pagination.

jira_add_comment

Add a comment after passing confirm: true.

jira_add_worklog

Add a worklog entry after passing confirm: true.

confluence_get_page

Get a Confluence page and its stored content.

confluence_search

Search Confluence content with CQL.

grafana_search_dashboards

Search dashboards visible to the configured service account.

grafana_get_dashboard

Get a Grafana dashboard by UID.

github_get_authenticated_user

Verify access for the configured GitHub token.

github_list_repositories

List repositories visible to the configured token.

github_get_repository

Get repository metadata by owner/name.

github_get_file_content

Read one repository file at a branch or ref.

github_create_or_update_file

Create or update one UTF-8 text file after passing confirm: true.

GitLab, Confluence, Grafana, and GitHub read tools are read-only. Jira mutations and GitHub file writes require an explicit confirm: true input and use the permissions of the configured token.

Jira search, comments, and worklogs return the service's pagination metadata. When total exceeds the number of returned entries, call the same tool with a later startAt value. jira_add_worklog accepts Jira duration syntax such as 1h 30m and an optional ISO 8601 started timestamp.

Repository Structure

contextloom-mcp/
├── src/
│   ├── client.ts       # HTTP clients, authentication, and request helpers
│   ├── proxy.ts        # Proxy-aware fetch dispatcher shared by every client
│   ├── config.ts       # GitLab instance resolution (single host or GITLAB_INSTANCES)
│   └── server.ts       # MCP tool registration and input schemas
├── test/
│   └── client.test.ts  # Focused helper and request-payload tests
├── .env.example        # Neutral local configuration template
├── package.json        # Scripts and dependencies
└── tsconfig.json       # TypeScript configuration

Requirements

  • Node.js 20 or newer

  • An MCP client with stdio server support, such as Visual Studio Code with GitHub Copilot

  • A GitLab personal access token with access to the projects you need (or several, via GITLAB_INSTANCES)

  • A Jira Server or Data Center personal access token

  • Optional: a Confluence Server or Data Center personal access token

  • Optional: a Grafana service account token with dashboard read access

  • Optional: a GitHub fine-grained personal access token; repository metadata and file reads need read access, while github_create_or_update_file needs repository contents write access

Quick Start

  1. Clone the repository and install dependencies.

    git clone https://github.com/jagarkarlo/contextloom-mcp.git
    cd contextloom-mcp
    npm install
    npm test
    npm run build
  2. Create your local configuration.

    cp .env.example .env

    Set GITLAB_BASE_URL, GITLAB_TOKEN, JIRA_BASE_URL, and JIRA_API_TOKEN. Use GITLAB_INSTANCES instead of the single GitLab pair to talk to more than one host. Confluence and Grafana are optional; set both variables in either integration's pair to enable its tools. Set GITHUB_TOKEN to enable GitHub tools; GITHUB_API_BASE_URL is optional for GitHub Enterprise Server. Set HTTPS_PROXY/NO_PROXY only if reaching one of these hosts needs a corporate proxy. Keep .env local; it is ignored by Git.

  3. Register the compiled server in your MCP client. In VS Code, run MCP: Open User Configuration and add this entry to the servers object. Replace /absolute/path/to with the cloned repository path.

    {
      "servers": {
        "contextloom": {
          "type": "stdio",
          "command": "node",
          "args": [
            "/absolute/path/to/contextloom-mcp/dist/server.js"
          ]
        }
      }
    }
  4. Restart the server from MCP: List Servers or reload VS Code.

Multiple GitLab hosts

Every gitlab_* tool accepts an optional instance argument. With a single GITLAB_BASE_URL/GITLAB_TOKEN pair it is unnecessary. With GITLAB_INSTANCES set to a JSON array of { "name", "baseUrl", "token" } objects, pass instance to pick one; omitting it uses the first entry.

Security

  • The server reads credentials only from the local .env file or process environment.

  • Use tokens with the smallest access scope that supports your intended requests.

  • Review the configured service URLs before starting the server.

  • Do not place credentials in source files, MCP configuration, issue comments, or commits.

  • Verify the issue key, work duration, and content before setting confirm: true for a Jira write.

  • Use a fine-grained GitHub token scoped only to the repositories and contents permissions you need.

  • Read the existing file with github_get_file_content and pass its returned SHA when updating a GitHub file.

  • A corporate proxy dispatcher (via undici) is only attached for a host when HTTPS_PROXY/HTTP_PROXY is set and that host is not covered by NO_PROXY — Node's global fetch does not read those variables on its own, unlike curl.

Configuration Boundaries

Integration

Required

Access

GitLab

Yes

Read-only projects, merge requests, pipelines, and repository files.

Jira

Yes

Read issues, comments, worklogs, transitions, and changelog; confirmed comment/worklog writes.

Confluence

Optional

Read-only page lookup and CQL search.

Grafana

Optional

Read-only dashboard search and retrieval.

GitHub

Optional

Read authenticated-user, repository, and file context; confirmed single-file UTF-8 writes.

Development

Run the checks before committing changes:

npm test
npm run build
git diff --check

src/client.ts contains the HTTP and response-handling helpers. src/proxy.ts holds the proxy-aware fetch dispatcher shared by every client. src/config.ts resolves one or more GitLab instances from the environment. src/server.ts registers the MCP tools and their input schemas. Tests cover the shared client helpers; add focused tests when changing behavior.

Roadmap

Future releases can add GitLab merge-request discussions and project search, while retaining explicit confirmation for every write operation.

License

This project is licensed under the MIT License.

Available Tools

19 tools
confluence_get_pageA

Get a Confluence page by numeric page ID, including stored page content.

ParametersJSON Schema
NameRequiredDescriptionDefault
pageIdYes

TDQS

A4.1/5.0
Behavior3/5

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

With no annotations provided, the description must carry the full burden. It discloses that the page content is included in the response, which is a key behavioral trait. However, it does not mention error behavior, authentication requirements, or whether only content or also metadata is returned, leaving some 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.

Conciseness5/5

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

The description is a single, well-structured sentence that front-loads the action and resource. Every word adds value: 'Get' specifies the operation, 'numeric page ID' clarifies the parameter, and 'including stored page content' sets expectations. There is no filler or redundancy.

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 tool with one parameter, no output schema, and no annotations, the description covers the basic purpose and parameter but lacks details about the response structure or edge cases (e.g., what happens if page not found). It is sufficient for a simple read operation, but could be more complete by mentioning the format of the content or expected errors.

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

Parameters4/5

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

The schema provides no parameter description (0% coverage), but the description adds that the page ID is numeric, which is meaningful because the schema only declares a string. This helps validate the input. It could go further by explaining what a page ID is or how to find it, but for a single parameter, this is adequate.

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 ('Get') and resource ('a Confluence page by numeric page ID') and further clarifies that it returns stored page content. This clearly distinguishes it from sibling tools like confluence_search, which would search for pages rather than fetch by ID.

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 context of use is clear: when you have a numeric page ID and need the page content, use this tool. It does not explicitly mention alternatives, but the sibling name confluence_search implies the alternative for search-focused tasks. No exclusions or when-not-to-use conditions are stated, so it does not fully reach a 5.

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

gitlab_get_fileA

Read one file from a GitLab repository at a branch, tag, or commit ref.

ParametersJSON Schema
NameRequiredDescriptionDefault
refNoHEAD
pathYes
projectYes

TDQS

A3.8/5.0
Behavior3/5

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

With no annotations, the description carries the burden of disclosure. It indicates a read operation but does not mention what happens if the file is not found, the response format, or any authentication requirements. It adds some context by specifying the ref types but lacks behavioral depth.

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, front-loaded sentence with no redundant or filler content. Every word contributes meaningful 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?

For a simple file-reading tool, the description covers the core action but omits important context like return value details and parameter meanings for project and path. Given no output schema and no annotations, it is adequate but incomplete for an agent to fully understand edge cases.

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

Parameters2/5

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

The input schema has no descriptions for any parameters, and the description only clarifies 'ref' by mentioning branch, tag, or commit. It does not explain whether 'project' is an ID or name, or whether 'path' is repository-relative, leaving ambiguity for two of the three parameters.

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 the tool reads one file from a GitLab repository at a branch, tag, or commit ref, with a specific verb and resource. It is easily distinguished from sibling tools that operate on projects, merge requests, or pipelines.

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 description clearly conveys the tool's purpose, making it obvious when to use it (to read file contents) versus sibling tools. However, it does not explicitly mention alternatives or exclusion cases, though none are critical given the distinct functionality.

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

gitlab_get_merge_requestC

Get one GitLab merge request and its metadata.

ParametersJSON Schema
NameRequiredDescriptionDefault
projectYes
mergeRequestIidYes

TDQS

C2.9/5.0
Behavior2/5

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

No annotations are present, so the description carries the full burden. It does not disclose the read-only nature beyond the verb 'get', error behavior for non-existent merge requests, required permissions, or which metadata fields are returned. This is a significant gap for a no-annotation tool.

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

Conciseness4/5

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

The description is a single efficient sentence with no wasted words and is front-loaded with the core action. It is slightly under-specified, but not verbose or poorly structured.

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

Completeness2/5

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

For a 2-parameter tool with no annotations and no output schema, the description is too thin: it omits return shape, error handling, and parameter format guidance. While the tool is simple, the description does not carry its share of the burden.

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

Parameters2/5

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

Schema description coverage is 0%, and the description adds no meaning beyond parameter names. It does not clarify whether `project` is a path or ID, nor explain that `mergeRequestIid` is the project-internal IID (vs a global MR ID).

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 uses a specific verb+resource ('Get one GitLab merge request') and the word 'one' implicitly distinguishes it from the sibling `gitlab_list_merge_requests`. However, it does not explicitly name the alternative, so differentiation is implied rather than stated.

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?

No explicit when-to-use/exclusion guidance is provided. The word 'one' weakly implies this tool is for retrieving a specific merge request (as opposed to listing all with `gitlab_list_merge_requests`), but the description does not state when to select this over alternatives or any prerequisites.

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

gitlab_get_projectA

Get a GitLab project by numeric ID or URL-encoded path.

ParametersJSON Schema
NameRequiredDescriptionDefault
projectYes

TDQS

A3.7/5.0
Behavior2/5

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

No annotations are provided, so the description bears full behavioral disclosure. It only provides parameter format and omits return value details, error handling, authentication, or side effects, making the behavior opaque.

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 entire description is a single focused sentence that immediately conveys the action and parameter format, with no redundancy.

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?

Given the low complexity and single parameter, the description covers the core purpose and parameter semantics, but lacks return-value expectations and usage context, especially without an output schema or annotations.

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

Parameters4/5

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

The schema provides only a parameter name with no description; the description compensates by explaining that the 'project' parameter accepts a numeric ID or URL-encoded path, adding semantic value beyond the schema.

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 the action ('Get') and the resource ('a GitLab project'), and specifies the lookup mechanism ('by numeric ID or URL-encoded path'), distinguishing it from sibling tools like gitlab_list_projects.

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 a specific project ID or path is known, but does not explicitly contrast with alternatives or state when not to use. No exclusion criteria or alternative tool references are given.

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

gitlab_list_merge_requestsC

List GitLab merge requests visible to the configured token.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNo
scopeNocreated_by_me
stateNoall
projectNo

TDQS

C2.8/5.0
Behavior2/5

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

With no annotations, the description carries the full burden. It notes the token-visible scope, which is useful, but fails to disclose whether project filtering is required, how pagination works, or what the response contains. The behavior remains ambiguous, especially regarding the optional project parameter.

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, clear sentence with no redundant information. It is front-loaded and concise, earning a high score for efficiency.

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

Completeness2/5

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

For a list tool with no output schema and no annotations, the description is minimal. It doesn't explain return values, pagination behavior, or how the optional project parameter affects results. Given the tool's apparent flexibility (listing across projects or one), it is under-specified.

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

Parameters2/5

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

The description mentions no parameters, and schema description coverage is 0%. The schema provides names, types, enums, and defaults, but the description adds no semantic meaning (e.g., what 'scope' or 'state' values represent in GitLab context). Agents must infer parameter usage from the schema alone.

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 uses a specific verb ('List') and resource ('GitLab merge requests') and clarifies the scope ('visible to the configured token'). It clearly differentiates from sibling tools like gitlab_list_projects and gitlab_get_merge_request by making the resource and plurality explicit, though it doesn't explicitly name alternatives.

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 alternatives. It does not mention preferred use cases, prerequisites, or exclusions. The description only states what it does, not when to choose it over gitlab_list_projects or gitlab_get_merge_request.

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

gitlab_list_pipelinesB

List recent CI/CD pipelines for a GitLab project.

ParametersJSON Schema
NameRequiredDescriptionDefault
refNo
limitNo
statusNo
projectYes

TDQS

B3/5.0
Behavior2/5

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

No annotations are provided, so the description must disclose behavioral traits. It only states 'recent' but does not clarify default limits, ordering, or security/permission requirements. The read-only nature is implied but not explicit, and no caveats are mentioned.

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

Conciseness4/5

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

Single sentence with no filler words, front-loaded verb. However, it is minimal to the point of under-specification.

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

Completeness2/5

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

Given the lack of annotations and output schema, the description is too sparse. It does not cover the available filters, defaults, or expected return structure, making it incomplete for a 4-parameter tool.

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

Parameters1/5

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

There are 4 parameters with 0% schema description coverage. The description only alludes to 'project' but does not explain 'ref', 'limit', or 'status' filters, leaving the agent without semantic understanding.

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 the specific verb 'List' with the resource 'CI/CD pipelines' and scopes it to 'a GitLab project', clearly distinguishing it from sibling tools like gitlab_list_projects or gitlab_list_merge_requests.

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?

No explicit guidance on when to use this tool over alternatives or exclusions. The description implies usage when pipeline data is needed, but does not mention filtering scenarios or other tools.

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

gitlab_list_projectsB

List GitLab projects visible to the configured token.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNo

TDQS

B3.2/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 of behavioral disclosure. It merely states 'List' without explicitly indicating that this is a read-only operation, nor does it disclose potential pagination, return format, or performance implications. The description is not misleading but lacks transparency beyond the surface-level action.

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 clear sentence with no redundant words or filler. It is appropriately sized for the tool's simplicity and communicates the essential purpose without unnecessary detail.

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 simple list operation with one optional parameter, the description captures the core purpose but leaves gaps in parameter semantics and usage guidance. Given the minimal schema and absent annotations, the description is adequate but not fully complete—missing details about what projects are included (e.g., archived, owned vs. accessible) and the meaning of the limit parameter.

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

Parameters2/5

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

The schema defines a single 'limit' parameter with default/min/max but no description. The tool description never mentions this parameter, leaving the agent to infer its meaning from the schema alone. With 0% schema description coverage, the description should compensate, but it does not.

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 the specific verb 'List' with the resource 'GitLab projects' and scope 'visible to the configured token.' This clearly distinguishes it from sibling tools like gitlab_get_project (single project details) and gitlab_list_merge_requests/gitlab_list_pipelines (other resources).

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?

No explicit guidance is provided on when to use this tool versus alternatives. It does not mention that gitlab_get_project should be used for individual project details, nor does it describe typical use cases or filtering options. The description only states the basic function without any context-driven recommendations.

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

grafana_get_dashboardA

Get a Grafana dashboard by UID.

ParametersJSON Schema
NameRequiredDescriptionDefault
uidYes

TDQS

A4/5.0
Behavior3/5

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

The verb 'Get' adequately signals a read-only operation, and no annotations are provided to contradict that. Yet the description adds no detail on authentication requirements, error behavior (e.g., not found), or whether the full dashboard JSON model is returned, so transparency is minimal.

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 front-loads the action and object. Every word contributes meaning and there is no redundancy.

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 operation, this description is nearly complete: it states what is fetched and how. It could mention the response type or behavior when the UID does not exist, especially since no output schema is provided, which prevents a 5.

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 description maps the 'uid' parameter to a dashboard identifier, which is helpful given the schema has no description for the property. However, it does not explain where the UID comes from or any format constraints beyond the schema's minLength, leaving some semantic gap.

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 ('Get'), names the resource ('Grafana dashboard'), and identifies the lookup mechanism ('by UID'). This clearly distinguishes it from the sibling grafana_search_dashboards, which searches for dashboards rather than fetching by a known identifier.

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?

It clearly implies use when you already have a dashboard UID, which is a useful selection signal. However, it does not explicitly state when not to use it or point to grafana_search_dashboards for finding UIDs, so it stops short of full guidance.

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

grafana_search_dashboardsB

Search Grafana dashboards visible to the configured service account.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNo
queryNo

TDQS

B3.1/5.0
Behavior2/5

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

No annotations are provided, and the description only states the action and visibility constraint. It does not disclose pagination behavior, result format, search semantics, or any side effects. The brief mention of service account visibility adds minimal behavioral context.

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 with no redundant wording. It is front-loaded with the action verb, making it easy to scan. However, it is extremely brief, which impacts completeness more than conciseness.

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

Completeness2/5

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

Given the lack of annotations and output schema, the description is too sparse. It does not explain how the search behaves, what fields are searched, the meaning of the limit parameter, or the response structure. An agent would lack critical information for correct invocation and interpretation.

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

Parameters1/5

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

The input schema has two parameters (limit, query) with zero documentation in the schema or the description. The description provides no explanation of what the query matches or how limit affects results, failing to compensate for the 0% 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 clearly identifies the action (Search), the resource (Grafana dashboards), and the access scope (visible to the configured service account), distinguishing it from the sibling grafana_get_dashboard.

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 provides some context (searchable scope) but does not explicitly state when to use this tool versus grafana_get_dashboard or other search tools. No alternatives or exclusions are mentioned, so it relies on implicit understanding.

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

jira_add_commentB

Add a plain-text comment to a Jira issue. Requires explicit confirmation.

ParametersJSON Schema
NameRequiredDescriptionDefault
commentYes
confirmYesMust be true to confirm this Jira write.
issueKeyYes

TDQS

B3.1/5.0
Behavior2/5

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 only mentions 'Requires explicit confirmation,' which merely reinforces the schema's confirm parameter. It does not disclose side effects, permission requirements, result format, or error behavior, leaving significant gaps for a write operation.

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 two short sentences, front-loaded with the action. Every word is purposeful, and it earns its place by stating the core operation and highlighting the confirmation requirement without any filler.

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

Completeness2/5

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

The tool has no output schema, so the description should explain return values or success/failure semantics, but it does not. It also lacks broader context such as mutation effects, expected input details, or when to use it. Given the minimal schema annotations, this description is insufficient for a Jira write operation.

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

Parameters2/5

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

Schema description coverage is only 33% (only confirm has a description), and the tool description does not compensate. It describes the comment as 'plain-text,' which adds minor meaning, but it does not clarify issueKey aside from the schema regex, nor does it explain the confirm parameter's necessity or exact behavior beyond what the schema already states.

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 the action ('Add') and the resource ('a plain-text comment to a Jira issue'). It is specific and immediately distinguishable from sibling tools like jira_list_comments or jira_add_worklog, which involve different operations or resources.

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?

The description provides no guidance on when to use this tool versus alternatives. It does not mention any prerequisites, exclusions, or contrast with sibling tools like jira_add_worklog or jira_list_comments, leaving the agent without enough context to select it appropriately in ambiguous situations.

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

jira_add_worklogA

Add a worklog entry to a Jira issue. Requires explicit confirmation.

ParametersJSON Schema
NameRequiredDescriptionDefault
commentNo
confirmYesMust be true to confirm this Jira write.
startedNo
issueKeyYes
timeSpentYes

TDQS

A3.7/5.0
Behavior3/5

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

With no annotations, the description carries the full burden. It does disclose the key behavioral trait that explicit confirmation is required, meaning the tool will not execute without consent. However, it omits other aspects such as irreversibility, side effects on total logged time, or permission requirements. The confirmation disclosure adds value but is incomplete for a mutation tool.

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 two short sentences, front-loaded with the primary action and followed by a critical requirement. No unnecessary words or redundancy. Every sentence earns its place, making it exemplary in conciseness.

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

Completeness2/5

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

For a tool with 5 parameters, no output schema, and no annotations, this description is far too sparse. It does not explain return values, parameter formats, or the impact of the operation. While it names the action, it leaves the agent without enough context to correctly invoke the tool, especially regarding timeSpent syntax and the meaning of optional fields.

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

Parameters2/5

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

Schema description coverage is only 20%, so the description must compensate. It only hints at the confirm parameter via 'Requires explicit confirmation.' It does not explain issueKey, timeSpent, started, or comment semantics, leaving the agent to infer meaning from patterns alone. This is a significant gap.

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 the tool's function with a specific verb and resource: 'Add a worklog entry to a Jira issue.' This unambiguously differentiates it from sibling tools like add_comment or list_worklogs. The additional note about explicit confirmation further clarifies the interaction model.

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 sentence provides clear context for when to use this tool (when adding a worklog to a Jira issue). The confirmation requirement serves as a usage prerequisite, though the description does not explicitly contrast alternatives or state when not to use it. Thus 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.

jira_get_changelogB

Get the status and field change history for a Jira issue.

ParametersJSON Schema
NameRequiredDescriptionDefault
issueKeyYes

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. It states 'Get' which implies read-only, but gives no details about the response format, ordering, pagination, or any limitations. There is no mention of authentication or potential side effects, leaving the agent with minimal behavioral insight.

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 is front-loaded with the key action and resource. Every word contributes value, and there is no fluff or redundancy.

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

Completeness2/5

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

For a one-parameter tool with no output schema, the description is sparse. It does not explain what the returned changelog contains, how it is structured, or any usage context. While the tool is simple, the lack of output details and usage guidance makes it incomplete for an agent to fully understand the invocation result.

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

Parameters2/5

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

The schema has one parameter (issueKey) with a pattern but no description, and schema description coverage is 0%. The description does not elaborate on how to specify the issue key beyond the schema's name and pattern. It adds no additional semantic meaning, so the agent must rely on the parameter name and pattern.

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 a specific verb ('Get') and resource ('status and field change history') for a Jira issue. This distinguishes it from sibling tools that retrieve current issue details (jira_get_issue) or available transitions (jira_get_transitions).

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?

No guidance is provided on when to use this tool versus alternatives. While the description implies it is for change history, it does not explicitly mention contexts where it would be preferable to jira_get_issue or jira_get_transitions, nor any exclusions.

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 a Jira issue by key, including comments.

ParametersJSON Schema
NameRequiredDescriptionDefault
issueKeyYes

TDQS

A4/5.0
Behavior3/5

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

The description adds the behavioral detail that comments are included, which is useful. However, with no annotations provided, the description carries the full burden for disclosing read-only nature, permissions, or response format, and it does not explicitly state these aspects beyond the verb 'Get'.

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, complete sentence with no unnecessary words. It is front-loaded with the action and resource, making it concise and easily scannable.

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?

Given the tool's low complexity (one parameter, no output schema, no annotations), the description covers the primary purpose and a key aspect (comments). It does not discuss error handling or permission requirements, but these are not critical for a straightforward GET operation.

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

Parameters4/5

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

The schema provides the issueKey parameter with a pattern but no description. The description adds meaning by saying 'by key', indicating the parameter is the Jira issue key. This compensates for the 0% schema description coverage, though briefly.

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 the verb ('Get'), the resource ('Jira issue'), and the access method ('by key'). It also highlights that comments are included, which differentiates it from related tools like jira_search_issues and jira_list_comments.

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 issue key is known, but it does not explicitly mention when to use this tool versus alternatives like jira_search_issues or jira_list_comments. No explicit exclusions or alternative recommendations are given.

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

jira_get_my_issuesA

List Jira issues assigned to the authenticated user.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNo

TDQS

A3.6/5.0
Behavior3/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. It clearly indicates a read-only, scoped operation, but it does not disclose return format, ordering, or pagination behavior beyond the implicit 'list' and the limit parameter in the schema.

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?

A single, clear sentence with no unnecessary words. Information is front-loaded and extremely concise.

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 simple list tool, the description covers the basic operation and scope, but it lacks details about result contents, ordering, and pagination behavior, especially given the absence of an output schema.

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

Parameters2/5

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

Schema description coverage is 0%, and the description does not explain the 'limit' parameter. While the schema provides type, default, and range constraints, the description adds no semantic meaning, leaving the parameter's purpose to inference.

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?

Clearly states the action (List), the resource (Jira issues), and the scope (assigned to the authenticated user), distinguishing it from siblings like jira_get_issue (single issue) and jira_search_issues (arbitrary search).

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 the use case of viewing the current user's assigned issues, but it does not explicitly contrast with alternatives like jira_search_issues or state when not to use it. No exclusion criteria are provided.

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

jira_get_transitionsA

List the status transitions currently available for a Jira issue.

ParametersJSON Schema
NameRequiredDescriptionDefault
issueKeyYes

TDQS

A3.8/5.0
Behavior3/5

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

No annotations are present, so the description carries the burden. The verb 'List' and 'currently available' convey a read-only behavior and the distinction from historical transitions, but the description does not disclose response format, permission requirements, or edge cases like empty transition lists. It gives moderate behavioral context beyond the name.

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, front-loaded sentence with no filler. Every word contributes meaning, and it clearly states the tool's purpose without unnecessary elaboration.

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-only tool with one clearly defined parameter and no output schema, the description provides sufficient purpose and scope. It lacks broader usage guidance or behavioral details, but the low complexity of the tool makes the description reasonably complete for selection.

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 has 0% description coverage and the description does not explicitly explain the issueKey parameter. However, the parameter name is self-descriptive and the schema pattern (`^[A-Z][A-Z0-9_]*-\d+$`) fully specifies the expected format. The description's reference to 'a Jira issue' implicitly connects the parameter, but no additional semantic value is added beyond the schema.

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 resource ('status transitions currently available for a Jira issue'). It clearly distinguishes from sibling tools like jira_get_changelog (historical changes) and jira_get_issue (current status), and the 'currently available' qualifier adds valuable precision.

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 phrase 'currently available' implies the tool should be used to inspect actionable workflow transitions for a given issue, but it does not explicitly state when to prefer this over alternatives such as jira_get_changelog or jira_get_issue. No direct exclusions or alternative tool references are provided.

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

jira_list_commentsC

List comments on a Jira issue.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNo
startAtNo
issueKeyYes

TDQS

C2.7/5.0
Behavior2/5

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 simply states 'List comments' without noting whether the operation is read-only, how pagination works, ordering, or any potential side effects. This is insufficient.

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

Conciseness4/5

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

The description is a single, waste-free sentence. While it lacks substance, it is appropriately concise for the simplicity of the tool. No irrelevant information is included.

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

Completeness1/5

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

Given the absence of annotations, output schema, and any parameter explanations, the description is severely incomplete. An agent would not know what the tool returns, how to properly paginate, or what edge cases exist. This is far below the minimum viable definition.

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

Parameters1/5

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

Schema description coverage is 0%, and the description adds no meaning beyond the parameter names. The parameters issueKey, limit, and startAt are not explained at all, leaving the agent without crucial semantic context (e.g., format of issueKey, relationship between limit and startAt).

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 'List comments on a Jira issue' uses a specific verb and resource, clearly distinguishing this from sibling tools like jira_add_comment, jira_get_issue, and jira_list_worklogs. The scope is unambiguous and immediately understandable.

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?

The description gives no guidance on when to choose this tool over alternatives. It does not mention related tools like jira_list_worklogs or jira_get_issue, nor any conditions or prerequisites for listing comments.

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

jira_list_worklogsC

List worklog entries on a Jira issue.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNo
startAtNo
issueKeyYes

TDQS

C2.8/5.0
Behavior2/5

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

With no annotations provided, the description carries full responsibility for behavioral disclosure. It merely states 'List worklog entries' without mentioning pagination behavior (limit/startAt), default ordering, required permissions, or what fields are returned. This is a significant gap for a read operation with no structured metadata.

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

Conciseness4/5

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

The description is a single, focused sentence with no redundancy or filler. It is concise and readable, though the extreme brevity borders on under-specification. The structure is appropriate for the minimal content, but the lack of supporting details prevents a perfect score.

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

Completeness2/5

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

The tool has 3 parameters, no output schema, no annotations, and 0% schema description coverage. The description is only a purpose statement, leaving out any operational context such as pagination options, response format, or prerequisites. For a tool of this complexity, the description is incomplete and fails to provide enough information for an agent to use it correctly.

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

Parameters1/5

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

Schema coverage is 0%, so the description must explain parameter meanings. It does not mention issueKey, limit, or startAt at all. The parameter names in the schema are somewhat self-explanatory, but the description adds zero semantic value beyond the raw schema, failing to compensate for the lack of 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 'List worklog entries on a Jira issue' clearly identifies the action (list), resource (worklog entries), and scope (a Jira issue). It distinguishes itself from sibling tools like jira_list_comments and jira_add_worklog by specifying the unique resource type.

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?

No guidance is provided on when to use this tool versus alternatives such as jira_get_issue or jira_list_comments. The description is solely a purpose statement and lacks any context about preferred use cases, exclusions, or relationships to sibling tools.

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

jira_search_issuesB

Search Jira issues using JQL. This tool is read-only.

ParametersJSON Schema
NameRequiredDescriptionDefault
jqlYes
limitNo
startAtNo

TDQS

B3.3/5.0
Behavior3/5

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

With no annotations provided, the description carries the full burden of disclosing behavioral traits. It correctly states the tool is read-only, which is a key safety characteristic. However, it does not describe return format, pagination behavior, or potential errors, so transparency is limited.

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 two sentences with no filler: the core purpose is stated first, and the read-only note adds a valuable safety trait. It is concise, front-loaded, and every word earns its place.

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

Completeness2/5

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

The tool has no output schema, no annotations, and sparse parameter documentation. The description only states the search capability, failing to explain what the result looks like, how limit and startAt control pagination, or any other behavioral context needed for correct invocation.

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

Parameters1/5

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

The schema covers 0% of parameter descriptions, and the tool description does not explain any parameters. The phrase 'using JQL' hints at the jql parameter, but limit and startAt are completely undocumented, leaving the agent without necessary invocation details.

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 the verb 'Search' and resource 'Jira issues' with the method 'JQL', distinguishing it from sibling tools like jira_get_issue and jira_get_my_issues. The explicit 'read-only' note further clarifies the tool's intent and scope.

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 the tool should be used when a JQL query is needed and asserts it is read-only, but it does not explicitly compare to alternatives such as jira_get_my_issues or jira_get_issue. There are no clear 'when not to use' instructions or alternative tool suggestions.

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. 19 tool updatesv0.1.0
    • First observedconfluence_get_page
    • First observedconfluence_search
    • First observedgitlab_get_file
    • First observedgitlab_get_merge_request
    • First observedgitlab_get_project
    • First observedgitlab_list_merge_requests
    • First observedgitlab_list_pipelines
    • First observedgitlab_list_projects
    • First observedgrafana_get_dashboard
    • First observedgrafana_search_dashboards
    • First observedjira_add_comment
    • First observedjira_add_worklog
    • First observedjira_get_changelog
    • First observedjira_get_issue
    • First observedjira_get_my_issues
    • First observedjira_get_transitions
    • First observedjira_list_comments
    • First observedjira_list_worklogs
    • First observedjira_search_issues

TDQS

B3.4/5.0

Scored across 19 tools

Disambiguation4/5

Tools are cleanly separated by domain prefixes (gitlab_, jira_, confluence_, grafana_) and each targets a distinct resource. Minor overlap exists between jira_get_issue (which includes comments) and jira_list_comments, but the descriptions clarify the intended use.

Naming Consistency4/5

Uses consistent snake_case with domain prefixes and verb_noun structure. Some deviation: jira_get_my_issues is a list operation but named get_ rather than list_, and jira_search_issues uses search_ instead of list_. Otherwise consistent.

Tool Count4/5

At 19 tools, the server is slightly above the typical 3-15 range, but given it covers four systems (GitLab, Jira, Confluence, Grafana) with read and write operations, each tool feels necessary and the count is reasonable.

Completeness4/5

The server provides strong coverage for retrieving context from all four systems, including issue details, comments, worklogs, pipelines, and dashboards. Minor gaps exist such as no GitLab commit listing or Jira issue creation, but these fall outside the 'context' scope.

Maintenance

ActivityMaintained
ResponsivenessNo issues

Related MCP Connectors

Related MCP Servers

  • A
    license
    Not graded
    quality
    D
    maintenance
    A read-only MCP server that enables querying and searching Atlassian Confluence pages and Jira issues through their REST APIs. Supports retrieving content by ID or URL, searching using CQL/JQL, and listing spaces and projects.
    1
    MIT
  • A
    license
    Not graded
    quality
    D
    maintenance
    MCP server for interacting with GitLab API, supporting both self-hosted instances and gitlab.com. Provides tools for managing issues, merge requests, code review, pipelines, milestones, releases, search, and file access.
    385 npm
    MIT
  • A
    license
    Not graded
    quality
    B
    maintenance
    MCP server for the GitLab REST API providing tools to manage projects, merge requests, pipelines, CI/CD variables, approvals, issues, and code reviews.
    1,431 PyPI
    6
    MIT