Skip to main content
Glama

Jules MCP Server

License: MIT Python 3.10+ FastMCP Docker Image

Production-grade Model Context Protocol (MCP) server for Google Jules AI, built with FastMCP.

Provides an enterprise-ready bridge for AI Agents (Antigravity, Claude Desktop, Cursor, VS Code, Goose) to inspect, mentor, plan, and automate Google Jules execution sessions natively via HTTP, SSE, or Stdio transport.


Key Features

  • โšก Sub-Second Response Times: Single-page fast listing (fetch_all=False by default) returning session data in <200ms.

  • ๐Ÿ›ก๏ธ Hardened Network Resilience: Per-request isolated HTTP clients (httpx.AsyncClient) with strict timeouts (httpx.Timeout(8.0)) catching asyncio.CancelledError and TimeoutError to guarantee non-blocking agent turns.

  • ๐Ÿงน Concurrent Automatic Session Cleanup: Parallel scanning and deletion of terminal/inactive sessions (COMPLETED, FINISHED, TERMINATED, CANCELLED, FAILED, EXPIRED, CLOSED) using asyncio.gather (clean_completed_sessions).

  • ๐Ÿ”’ Type Sanitization: Primitive string and boolean defaults (title: "", starting_branch: "main", fetch_all: false) eliminating null validation errors in client schema parsers.

  • ๐Ÿ”Œ Multi-Transport Support: Native HTTP JSON-RPC (/mcp), Server-Sent Events (/sse), and Stdio bridge support.

  • ๐Ÿณ Production Docker Image: Pre-compiled multi-arch image hosted on GitHub Container Registry (ghcr.io/cavuminfundo/jules-mcp-server:latest).


Related MCP server: GenieOS MCP Server

๐Ÿ› ๏ธ MCP Tools Reference

Tool Name

Description

Default Parameters

list_sessions

List Jules sessions with fast single-page default or optional auto-pagination.

page_size: 50, page_token: "", fetch_all: false

get_session

Retrieve full details and current state for a specific session ID or name.

session_id: string

create_session

Launch a new Jules AI session for a target repository.

source: string, prompt: string, title: "", starting_branch: "main", require_plan_approval: false

list_activities

Fetch activity history and generated plans for a session.

session_id: string, page_size: 20, page_token: ""

list_all_activities

Fetch all activity history for a session using automatic pagination.

session_id: string

get_activity

Retrieve details for a specific activity ID within a session.

session_id: string, activity_id: string

approve_session_plan

Approve a pending session plan in a single native call.

session_id: string

send_session_message

Send mentoring feedback, answers, or directives to an active session.

session_id: string, message: string

delete_session

Permanently delete a completed or inactive session.

session_id: string

clean_completed_sessions

Concurrently scan and delete all terminal/inactive sessions.

None

list_sources

List accessible source GitHub repositories connected to Jules.

page_size: 50, page_token: "", filter_str: ""

get_all_sources

Retrieve all accessible source repositories with auto-pagination.

filter_str: ""


๐Ÿš€ Quickstart & Container Deployment

Create a docker-compose.yml file:

services:
  jules-mcp:
    image: ghcr.io/cavuminfundo/jules-mcp-server:latest
    container_name: jules_mcp_server
    dns:
      - 8.8.8.8
      - 8.8.4.4
    environment:
      - JULES_API_KEY=your_google_jules_api_key_here
    ports:
      - "8000:8000"
    restart: unless-stopped

Run the container:

docker compose up -d

2. Standalone Docker Run

docker run -d \
  --name jules_mcp_server \
  -e JULES_API_KEY="your_google_jules_api_key_here" \
  -p 8000:8000 \
  --restart unless-stopped \
  ghcr.io/cavuminfundo/jules-mcp-server:latest

๐Ÿ”Œ Client Integration Guide (mcp_config.json)

Add jules-mcp to your AI client configuration (Antigravity, Claude Desktop, Cursor, VS Code, Goose).

Stateless endpoint (/rpc) executing tool calls instantly without stateful SSE connection ID caching or reconnection timeouts:

{
  "mcpServers": {
    "jules-mcp": {
      "type": "http",
      "url": "http://<SERVER_IP_OR_HOST>:8000/rpc"
    }
  }
}

Option B: Native Stdio Transport Bridge (SSH / Docker)

Direct process stdio stream execution bypassing HTTP network sockets completely:

{
  "mcpServers": {
    "jules-mcp": {
      "command": "ssh",
      "args": [
        "-o",
        "StrictHostKeyChecking=no",
        "user@<SERVER_IP_OR_HOST>",
        "docker",
        "exec",
        "-i",
        "jules_mcp_server",
        "python3",
        "-m",
        "jules_mcp.jules_mcp",
        "stdio"
      ]
    }
  }
}

Option C: SSE Transport (Server-Sent Events)

Stateful stream connection for streaming clients:

{
  "mcpServers": {
    "jules-mcp": {
      "type": "sse",
      "url": "http://<SERVER_IP_OR_HOST>:8000/sse"
    }
  }
}

Stdio Transport Bridge (mcp-remote)

{
  "mcpServers": {
    "jules-mcp": {
      "command": "npx",
      "args": [
        "-y",
        "mcp-remote",
        "http://<SERVER_IP_OR_HOST>:8000/sse",
        "--allow-http"
      ]
    }
  }
}

๐Ÿ› ๏ธ Local Development & Testing

# Clone the repo
git clone https://github.com/cavuminfundo/jules-mcp-server.git
cd jules-mcp-server

# Set environment API key
export JULES_API_KEY="your_google_jules_api_key"

# Install dependencies and start server with uv
uv sync
uv run python -m jules_mcp.jules_mcp

๐Ÿ“„ License

Distributed under the MIT License. See LICENSE for more information.

Available Tools

13 tools
approve_session_planApprove Session PlanC

Approve the generated plan for a session in a single native MCP call.

ParametersJSON Schema
NameRequiredDescriptionDefault
_metaNo
session_idYes

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

C2.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 carries the full behavioral burden. It is an approval/mutation action but does not disclose what approval triggers, whether it is reversible, what permissions are required, or what happens if no plan exists. That is a significant gap for a state-changing 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?

A single front-loaded sentence with no filler. It is appropriately sized, though its brevity is partly a function of under-specification rather than deliberate tightness.

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?

An output schema exists so return values need not be explained, but the description still omits the essentials for a state-mutating approval tool: preconditions, side effects, and the role of '_meta'. With no annotations to lean on, the definition is not complete enough to call safely.

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%, so the description must compensate and does not. session_id is self-evident, but the second parameter '_meta' is completely opaque in both schema and description, leaving half the surface undocumented.

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?

States a specific verb+resource ('Approve the generated plan for a session'), which is distinct from every sibling (none of which handle plan approval). It is clear what the tool does, though it never contrasts itself with the sibling set or explains what a 'plan' is in this session lifecycle.

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 when-to-use guidance, no prerequisites, and no mention of what state the session must be in before a plan can be approved. The 'single native MCP call' phrasing hints at efficiency but tells the agent nothing about selection or ordering relative to get_session/delete_session.

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

clean_completed_sessionsClean Completed SessionsB

Scans all sessions and deletes completed, terminated, failed, or inactive sessions automatically.

ParametersJSON Schema
NameRequiredDescriptionDefault
_metaNo

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

B3.4/5.0
Behavior3/5

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

No annotations exist, so the description carries the full burden. It does disclose the key behavioral trait that this is an automatic bulk delete and lists which session states qualify, which is meaningful. However, it says nothing about irreversibility, required permissions, or whether running it is idempotent/repeatable.

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 front-loaded sentence with no filler. It states the action and the qualifying states without 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?

An output schema exists, so return values need not be explained. Still, for an unannotated destructive bulk operation, the description omits irreversibility, auth requirements, and scope limits (e.g., whole account vs workspace), leaving real gaps.

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 only parameter is a meta field, so there are effectively zero meaningful inputs to document; the baseline for a parameterless tool is 4. The description adds no parameter detail, but none is needed.

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?

States a specific verb pair (scans/deletes) and resource (sessions) plus the exact deletion criteria (completed, terminated, failed, inactive). It is distinguishable from delete_session by its bulk scope, though it never names that sibling explicitly.

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 prefer this over delete_session, no prerequisites, no warnings about running a bulk destructive sweep, and no statement of when not to use it. The agent must infer everything from the single declarative sentence.

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

create_sessionCreate SessionC

Create a new Jules session for a given source and prompt.

ParametersJSON Schema
NameRequiredDescriptionDefault
_metaNo
titleNo
promptYes
sourceYes
starting_branchNo
require_plan_approvalNo

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

C2.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 carries the full burden. It says nothing about side effects: whether creating a session immediately enqueues work, what starting_branch or require_plan_approval change behaviorally, or whether the new session requires plan approval before acting.

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?

A single tight sentence with the verb and resource front-loaded and zero filler. It's lean, though lean at the cost of the context an agent actually needs.

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?

An output schema exists, so return values need not be explained, but this is a 6-parameter mutation tool with no annotations and no parameter documentation. The description does not cover the behavioral or parameter gaps the structured fields leave open.

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% across 6 parameters, and the description only names the two required ones (source, prompt). It adds no meaning for title, starting_branch, require_plan_approval, or _meta, leaving half the surface undocumented anywhere.

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?

States a specific verb ('Create') and resource ('Jules session') and names the two inputs that drive it. It is distinguishable from siblings like list_sessions or delete_session by the verb alone, though it does not explicitly position itself against them.

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 when-to-use guidance, no prerequisites, no alternatives named. An agent must infer that this is the entry point for a new work session rather than, say, re-opening an existing one.

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

delete_sessionDelete SessionB

Delete a completed or terminated session by ID.

ParametersJSON Schema
NameRequiredDescriptionDefault
_metaNo
session_idYes

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

B3/5.0
Behavior2/5

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

With no annotations at all, the description carries the full behavioral burden for a destructive operation. It does not state that deletion is irreversible, whether related activities/messages are cascaded, or what permissions are required โ€” all material facts for a delete 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?

A single front-loaded sentence with no filler; the verb, resource, and scoping condition all appear immediately.

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 destructive tool with no annotations and no schema descriptions, the definition is too thin. It omits reversibility, cascade behavior, and prerequisites; the presence of an output schema excuses it only from describing return values.

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%, so the schema contributes no parameter meaning. 'By ID' clarifies session_id loosely, but the required _meta parameter is entirely undocumented in both schema and description, leaving the agent without guidance on it.

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?

States a specific verb (delete) and resource (session) plus a scoping condition (completed or terminated), so the agent knows it is not a general-purpose session remover. It does not explicitly name or distinguish itself from the closest sibling, clean_completed_sessions, which also targets finished sessions.

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 'completed or terminated' implies the precondition for use, which is real guidance about applicability. However, there is no explicit when-to-use vs. when-to-avoid statement and no mention of clean_completed_sessions as the bulk alternative, so the agent must infer the routing.

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

get_activityGet ActivityC

Get details for a single activity by ID.

ParametersJSON Schema
NameRequiredDescriptionDefault
_metaNo
session_idYes
activity_idYes

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

C2.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 carries the full burden: it doesn't state that this is a non-mutating read, whether the activity must exist, what happens on a missing ID, or how session scoping affects the lookup. Only the trivial 'read one entity' implication is conveyed.

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?

A single front-loaded sentence with no filler or repetition; nothing needs trimming. It is efficient, though the brevity reflects under-specification rather than discipline.

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?

An output schema exists so return values need not be described, but for a two-required-parameter lookup with zero schema descriptions and zero annotations, the description leaves too much unsaid about scoping and failure behavior to call it complete.

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% with three parameters (session_id, activity_id, _meta). The description mentions only 'ID' in the singular and never explains that a session_id is also required or how the two identifiers relate, adding essentially no meaning beyond bare property names.

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?

States a specific verb (get) and resource (a single activity), and the singular 'single activity' implicitly contrasts with the list_activities and list_all_activities siblings. It loses a point because it says 'by ID' (singular) while the tool actually requires two identifiers, session_id and activity_id.

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 when-to-use guidance, no prerequisites, and no mention of the sibling list_activities / list_all_activities tools that would be the alternative for browsing activities. The agent must infer usage entirely from the name.

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

get_all_sourcesGet All SourcesC

Get all sources with optional filtering (auto-pagination).

ParametersJSON Schema
NameRequiredDescriptionDefault
_metaNo
filter_strNo

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

C2.4/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 behavioral burden. It does disclose one useful trait, auto-pagination, but says nothing about read-only nature, auth requirements, throttling, or result size limits.

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?

A single front-loaded sentence with no wasted words. It is efficient, though efficiency here partly reflects under-specification rather than tight editing.

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?

An output schema exists so return values need no explanation, but the description still omits the filter syntax, the meaning of _meta, and any distinction from list_sources. For a two-parameter retrieval tool it leaves meaningful gaps.

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%, so both parameters are undocumented in structured data. The description implies filter_str exists via 'optional filtering' but gives no syntax or format, and _meta is never mentioned at all.

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

Purpose3/5

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

States a clear verb ('Get') and resource ('sources') with a scope modifier ('all'), which does distinguish it from the single-item get_source. However, it gives no way to tell it apart from the sibling list_sources, leaving the agent to guess which listing tool to pick.

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 when-to-use guidance, no mention of when to prefer list_sources or get_source, and no indication of what the optional filtering applies to. The agent gets no routing help beyond the name.

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

get_sessionGet SessionB

Get details for a single session by ID or resource name.

ParametersJSON Schema
NameRequiredDescriptionDefault
_metaNo
session_idYes

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

B3.3/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 behavioral burden. It does not say whether the call is read-only (safe assumption from 'Get' but unstated), what happens when the session is not found, or whether any permissions are required.

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 sentence that front-loads the action and resource with 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?

An output schema exists, so return values need no explanation, and the identifier semantics are covered. For a simple read tool this is close to adequate, but error behavior on a missing session and confirmation of read-only semantics are absent.

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 0%, so the description must compensate. It usefully clarifies that session_id accepts either an ID or a resource name, adding meaning beyond the bare string type, but it says nothing about the _meta parameter.

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?

States a specific verb (get) and resource (session) with a clear single-item scope, which distinguishes it from list_sessions and the other siblings. It is clear but does not explicitly contrast itself with get_activity or list_sessions.

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?

Usage is only implied: fetch one session when you already have its identifier. There is no statement of when to prefer this over list_sessions, nor any prerequisites or exclusions.

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

get_sourceGet SourceC

Get details for a single source by ID.

ParametersJSON Schema
NameRequiredDescriptionDefault
_metaNo
source_idYes

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

C2.8/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, and it discloses nothing beyond the bare purpose. It does not state whether the source must exist, what happens on a missing/invalid ID, or any permission requirements.

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?

A single, front-loaded sentence with no waste. It is efficient, though the brevity edges toward under-specification rather than tightness.

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?

An output schema exists, so return values need not be described, and this is a simple single-lookup read. However, with zero annotation coverage and zero parameter documentation, the definition leaves basic invocation semantics (valid ID form, not-found behavior) unaddressed.

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 almost nothing: 'by ID' maps loosely to source_id, but the _meta parameter is undocumented in both schema and description. No ID format, type, or provenance guidance is given.

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?

States a specific verb (Get) and resource (source) with scope (single, by ID). It is clearly distinguishable from the list-oriented siblings in intent, though it does not explicitly name list_sources or get_all_sources as the 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?

No when-to-use guidance, no prerequisites, and no mention of the sibling tools (list_sources, get_all_sources) that an agent must choose between. The reader must infer that this is the ID-based retrieval path.

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

list_activitiesList ActivitiesC

List activities for a specific session.

ParametersJSON Schema
NameRequiredDescriptionDefault
_metaNo
page_sizeNo
page_tokenNo
session_idYes

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

C2.4/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 behavioral burden but only supplies a one-line purpose. It does not disclose pagination behavior (page_size/page_token are present), ordering, or whether the operation is a safe read, all of which an agent needs for a 4-parameter list tool.

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

Conciseness3/5

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

The single sentence is front-loaded and free of padding, but it is under-specified rather than appropriately sized for a tool with four parameters and no annotation support.

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?

An output schema exists, so return values need not be described, but the description still leaves the required session_id format, pagination parameters, and read-only safety profile unexplained. For a 4-param tool with zero annotation and zero schema coverage, this is inadequate.

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% across 4 parameters, so neither the schema nor the description explains _meta, page_size, or page_token. The description only implies session_id via 'for a specific session', leaving the pagination contract undocumented.

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

Purpose3/5

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

The description states a clear verb+resource ('List activities') with a scope qualifier ('for a specific session'), which lets an agent distinguish it from the sibling list_all_activities by implication. However, that sibling is never named, so the differentiation is left to inference 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 Guidelines2/5

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

There is no explicit when-to-use guidance and no alternatives named, despite the presence of a near-identical sibling (list_all_activities) and get_activity. The agent must infer that this is the session-scoped variant.

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

list_all_activitiesList All ActivitiesC

List all activities for a session with automatic pagination.

ParametersJSON Schema
NameRequiredDescriptionDefault
_metaNo
session_idYes

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

C2.9/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 behavioral burden. It usefully discloses automatic pagination, a genuine behavioral trait, but says nothing about read-only semantics, authorization requirements, or result ordering/caps for a potentially large activity list.

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?

A single efficient sentence with the pagination behavior front-loaded and no filler. It is perhaps too terse for the gaps it leaves, but there is no wasted text.

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?

An output schema exists, so return values need not be described, but with no annotations, zero parameter documentation, and no differentiation from a very similarly named sibling, the description is insufficient for reliable invocation.

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% with two parameters. The phrase 'for a session' hints at session_id but adds no format, and the '_meta' parameter is completely undocumented in both schema and description.

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?

States a specific verb and resource ('List all activities') and scopes it to a session. However, it does nothing to distinguish itself from the sibling 'list_activities', leaving the agent unable to tell whether this is the paginated variant, a broader variant, or a duplicate.

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 when-to-use guidance and no mention of the sibling 'list_activities' or 'get_activity', which are the obvious alternatives. The agent must infer selection from the name alone.

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

list_sessionsList SessionsC

List sessions with optional automatic pagination to retrieve sessions natively.

ParametersJSON Schema
NameRequiredDescriptionDefault
_metaNo
fetch_allNo
page_sizeNo
page_tokenNo

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

C2.8/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 does disclose one behavioral traitโ€”optional automatic pagination via fetch_allโ€”but omits safety profile, authentication needs, rate limits, and what happens when pagination is not requested. The partial pagination detail earns a 3 rather than a 2.

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

Conciseness3/5

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

It is a single sentence with the verb-resource front-loaded, but the phrase 'to retrieve sessions natively' is redundant and slightly awkward, adding length without informational value.

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 four undocumented parameters and no annotations, the description is too thin. Although an output schema exists and return values need not be explained, the lack of parameter semantics and behavioral detail leaves the agent without enough context to invoke it confidently.

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% for four parameters (_meta, fetch_all, page_size, page_token). The description vaguely references pagination but does not explain any parameter by name or semantics, so it fails to compensate for the coverage gap.

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 states a specific verb and resource ('List sessions'), making it clear apart from get_session or create_session. However, it does not explicitly differentiate from other list-style siblings like list_activities or list_sources, and the trailing phrase about pagination adds no clarifying purpose.

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 given on when to use this tool versus get_session, list_activities, or any alternative. There are no exclusions or prerequisites; the agent must infer usage entirely from the name.

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

list_sourcesList SourcesC

List sources with optional filter and pagination.

ParametersJSON Schema
NameRequiredDescriptionDefault
_metaNo
page_sizeNo
filter_strNo
page_tokenNo

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

C2.4/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 behavioral burden. It does note that filtering and pagination are supported, but says nothing about read-only safety, default page size (50, per schema), ordering, or how page_token behaves once exhausted.

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

Conciseness3/5

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

A single compact sentence with no waste, but it is under-specified rather than genuinely concise โ€” brevity here comes at the cost of the guidance an agent needs.

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?

An output schema exists, so return values need not be described. However, for a 4-parameter listing tool with zero schema documentation, no annotations, and an ambiguous sibling (list_all_sources), the description is far too thin to let an agent invoke it correctly.

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% across all 4 parameters, so the description must compensate. It only alludes to 'filter' and 'pagination', leaving filter_str syntax, page_size semantics, page_token format, and the opaque _meta parameter entirely unexplained.

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

Purpose3/5

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

States the verb and resource ('List sources'), which is clear enough on its own, but it fails to distinguish this tool from the sibling list_all_sources or explain what 'sources' scopes to. The 'optional filter and pagination' clause is generic and adds no differentiating detail.

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 on when to use this versus list_all_sources or get_source/get_all_sources. The word 'optional' hints the filter can be omitted but does not say what happens when it is, or when the agent should prefer this tool.

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

send_session_messageSend Session MessageC

Send a user message (prompt) to an existing session.

ParametersJSON Schema
NameRequiredDescriptionDefault
_metaNo
promptNo
messageNo
session_idYes

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

C2.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 carries the full burden. It does not say whether the call blocks until the session responds, whether it mutates session state, what happens to a session that is paused or completed, or how the prompt/message fields differ. For a mutation-style tool with zero annotation coverage this is a substantial gap.

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?

A single front-loaded sentence with no filler. It is efficient, though the brevity reflects under-specification rather than disciplined compression.

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?

An output schema exists, so return values need not be explained, but with 4 parameters at 0% coverage, a confusing prompt-vs-message duplication, and no annotations, the definition is far too thin for an agent to invoke it confidently.

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% across four parameters, yet the description only obliquely gestures at 'prompt' via 'user message (prompt)'. It never explains the relationship between the separate 'prompt' and 'message' string fields or what '_meta' is for, leaving two ambiguous overlapping inputs undocumented in both schema and description.

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?

States a specific verb and resource ('Send a user message to an existing session'), which clearly separates it from the session CRUD siblings. It stops short of naming any sibling or the alternative path explicitly, so it doesn't reach the 5 bar.

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 when-to-use guidance, no prerequisites (does the session need to be active? in a specific state?), and no mention of alternatives among the eleven sibling tools. The 'existing session' phrasing hints at a precondition but never defines it.

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. 13 tool updatesv0.2.1
    • First observedapprove_session_plan
    • First observedclean_completed_sessions
    • First observedcreate_session
    • First observeddelete_session
    • First observedget_activity
    • First observedget_all_sources
    • First observedget_session
    • First observedget_source
    • First observedlist_activities
    • First observedlist_all_activities
    • First observedlist_sessions
    • First observedlist_sources
    • First observedsend_session_message

TDQS

C2.9/5.0

Scored across 13 tools

Disambiguation2/5

Several tools have unclear boundaries, especially list_activities vs list_all_activities and list_sources vs get_all_sources, which appear to perform nearly the same listing operation with only subtle pagination differences. Descriptions do not clearly explain when to choose one over the other.

Naming Consistency4/5

Most names follow a consistent snake_case verb_noun pattern (list_sessions, get_session, create_session, delete_session). Minor deviations exist: get_all_sources uses 'get' for a list operation, and list_all_activities/list_activities plus list_sources/get_all_sources introduce inconsistent list vs get_all phrasing.

Tool Count4/5

13 tools is reasonable for a session/activity/source management server. However, the redundant auto-pagination variants slightly inflate the count, meaning not every tool clearly earns its place.

Completeness4/5

Core session lifecycle is covered with create, get, list, delete, bulk cleanup, plan approval, and messaging. Activities and sources are read/list-oriented, which may be appropriate if they are externally managed, but there is no update or termination operation beyond delete.

Maintenance

ActivityStale
ResponsivenessNo issues

Related MCP Connectors

Related MCP Servers

  • A
    license
    Not graded
    quality
    D
    maintenance
    Exposes any stdio-based MCP server to the internet via HTTP/SSE transport, enabling remote agents to access MCP tools over a network.
    29 npm
    MIT
  • A
    license
    Not graded
    quality
    B
    maintenance
    Enables AI clients to interact with EDA projects via natural language by wrapping EDI's gRPC interface, CLI tools, and ANSYS HFSS as MCP tools supporting SSE and stdio transports.
    3
    MIT
  • A
    license
    Not graded
    quality
    A
    maintenance
    Coordinate and verify OpenCode worker agents over MCP Streamable HTTP. The bridge lets compatible AI harnesses dispatch scoped work, inspect progress, run approved commands, and verify results through a safe worker-only endpoint.
    2
    PolyForm Noncommercial 1.0.0