Skip to main content
Glama

Server Details

One shared project for a team's coding agents: decisions, a task board and handoffs.

Ownership verified
Status
Healthy
Uptime
0.2% over 16 days
OAuth
Works in Glama
Last Tested
Transport
Streamable HTTP · MCP 2025-06-18
URL
Repository
JoxoAI/joxo
GitHub Stars
89
Server Listing
Joxo

TDQS

A4/5.0

Scored across 5 tools

Disambiguation5/5

Each tool maps to a distinct resource and action: list/get projects, create/list tasks, and publish log entries. get_project includes task rows, but the descriptions clarify that list_tasks handles paging and filtering.

Naming Consistency4/5

Four tools follow a clear verb_noun pattern (create_task, get_project, list_projects, list_tasks). publish is a single verb and breaks the pattern, but the meaning remains clear.

Tool Count5/5

Five tools are well-scoped for a project/task/log collaboration surface, with no redundant tools. Each tool has a clear role in the exposed workflow.

Completeness2/5

Task lifecycle coverage is thin: there is no update, claim, complete, drop, or get-task operation, despite tasks having holder and lease state. The log also has publish but no read/list operation, leaving core state transitions unaddressed.

Available Tools

5 tools
create_taskCreate taskAInspect

Adds a shared task to a project’s board. It does not start an agent on anybody’s computer.

NameRequiredDescriptionDefault
repoNoThe repository it is for, owner/name, when the project has several.
titleYesThe task’s title.
project_idYesThe project’s id, from list_projects.

TDQS

A3.6/5.0
Behavior3/5

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

Annotations already declare this is a non-read-only, non-destructive, non-idempotent, closed-world write. The description adds one meaningful behavioral note beyond that: creating the task does not trigger execution on anyone's machine. It does not clarify duplicate handling, permissions, or side effects beyond that.

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

Conciseness5/5

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

Two short sentences with the core action front-loaded. The second sentence is not padding; it clarifies an important behavioral boundary that the name might not convey.

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 three-parameter tool with full schema coverage and annotations covering the safety profile, the description is largely complete. It could say more about project validation or duplicate titles, but the essential information is present.

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

Parameters3/5

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

Schema description coverage is 100%, so all three parameters are already documented in the schema. The description adds no additional parameter meaning, making the baseline 3 appropriate.

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

Purpose4/5

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

The description gives a specific verb and resource: 'Adds a shared task to a project’s board.' It is clearly distinct from read-oriented siblings like list_tasks and get_project, though it does not explicitly differentiate itself from publish.

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 creation on a project board and adds one useful exclusion — it does not start an agent. However, it does not state when to use this versus alternatives, nor does it mention prerequisites such as needing a valid project_id.

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

get_projectGet projectA
Read-onlyIdempotent
Inspect

Returns one project as it stands: the people on it, their computers by name and status, the open invitations, the open tasks (short rows with counts; list_tasks pages and filters them) and its current decisions (the newest ones no later decision replaced).

NameRequiredDescriptionDefault
project_idYesThe project’s id, from list_projects.

TDQS

A4.2/5.0
Behavior4/5

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

Annotations already establish that this is a read-only, idempotent, non-destructive operation. The description adds valuable behavioral context by defining the returned project state, including that decisions are current only (newest not replaced by a later decision) and that tasks are abbreviated rows rather than full task records. It does not mention error behavior for missing projects, which keeps it below 5.

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 front-loaded sentence that leads with the core action before enumerating details. It is dense but every clause contributes to understanding the returned shape, though the long enumeration could be slightly easier to parse.

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

Completeness5/5

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

There is no output schema, so the description carries the burden of explaining the return value, and it does so comprehensively: people, computers with name/status, open invitations, open tasks with counts, and current decisions. Combined with annotations covering safety and the schema covering the only parameter, an agent has enough information to call and interpret this tool correctly.

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

Parameters3/5

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

Schema description coverage is 100%, and the schema already explains that project_id comes from list_projects. The description does not add further parameter semantics, so the baseline of 3 applies when the schema fully documents the single parameter.

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-resource pair, "Returns one project," and then enumerates exactly what that project payload includes: people, computers, invitations, open tasks, and current decisions. It also distinguishes the task portion from list_tasks by noting that list_tasks pages and filters tasks while this tool returns short rows with counts.

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 makes clear this is the single-project detail tool and gives explicit guidance that list_tasks should be used for paged/filtered task listings. It does not explicitly state when to choose list_projects or what to do if the id is unknown, but the usage context is otherwise clear.

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

list_projectsList projectsA
Read-onlyIdempotent
Inspect

Lists every Joxo project this account is a member of, with its id, name, repository and the account’s role in it. The ids are the project_id the other Joxo tools take.

NameRequiredDescriptionDefault

No parameters

TDQS

A4.4/5.0
Behavior4/5

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

Annotations already declare readOnly, idempotent, non-destructive, and closed-world, so the safety profile is covered. The description adds useful non-annotation context: the membership-based scoping and the exact fields returned. It omits whether results are paginated, ordered, or capped, which is the remaining behavioral gap.

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

Conciseness5/5

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

Two sentences, no filler, with the scope and returned fields front-loaded and the id-linkage note placed where it is immediately actionable. Every clause earns its place.

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?

There is no output schema, so the description must convey the shape of the return value, and it does by naming id, name, repository, and role. For an otherwise simple zero-parameter read, that leaves only minor gaps such as pagination or ordering behavior.

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 tool takes zero parameters, so there are no parameter semantics for the description to supply; the baseline for a 0-param tool is 4. The description correctly implies no input is needed by describing only the account-scoped result set.

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?

Uses a specific verb+resource with explicit scope ('every Joxo project this account is a member of') and enumerates what each entry contains (id, name, repository, role). This is plainly distinguishable from sibling get_project (single project) and list_tasks.

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 second sentence gives real usage direction: the returned ids are the project_id the other Joxo tools accept, effectively telling the agent to call this first to discover ids. It stops short of naming an alternative or stating when not to use it, so it is clear context without explicit exclusions.

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

list_tasksList tasksA
Read-onlyIdempotent
Inspect

Lists a project’s tasks, one short row each (status, holder, lease state and a line of its details), claimable first and newest first. By default only open tasks are listed and done or dropped ones are counted.

NameRequiredDescriptionDefault
limitNoMost rows to return.
cursorNoThe next_cursor of a previous answer, for the next page.
statusNoWhich tasks to list instead of the open ones: "done", "all", or any one status.
task_idNoReturn this one task in full instead of a list.
project_idYesThe project’s id, from list_projects.
include_detailsNoInclude each task’s full details rather than one line.

TDQS

A4.2/5.0
Behavior4/5

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

Annotations already cover the safety profile (readOnly, idempotent, non-destructive), and the description adds genuinely non-obvious behavior: default filtering to open tasks, counting of done/dropped tasks instead of listing them, and the claimable-first/newest-first ordering. It does not discuss access requirements, but for a read-only list tool that is a modest gap.

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

Conciseness5/5

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

Two sentences, no filler, and the most decision-relevant facts (what is listed, row shape, ordering, default filter) are front-loaded.

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

Completeness4/5

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

For a six-parameter read tool with no output schema, the description supplies the return shape (one short row plus counters), ordering rules and default scoping, while the schema covers pagination and detail flags. It is close to complete; only a brief note on paging or detail expansion would close the remaining gap.

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

Parameters3/5

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

Schema coverage is 100%, so limit, cursor, status, task_id and include_details are already documented. The description reinforces the default status behavior and the row shape, but says nothing about limit, cursor, task_id or include_details, so it adds only marginal meaning 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 opens with a concrete verb+resource ("Lists a project's tasks") and immediately specifies what each row contains (status, holder, lease state, detail line) plus ordering (claimable first, newest first). This is far more than a restatement of the name and makes it easily distinguishable from create_task, get_project and 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 Guidelines4/5

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

It clearly states the default scope — only open tasks, with done/dropped ones merely counted — which tells the agent what it gets without extra parameters. It stops short of naming alternatives or explicitly saying when to reach for a sibling, so it gets a 4 rather than a 5.

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

publishPublish to projectA
Destructive
Inspect

Adds a handoff, decision, blocker or message to a project’s shared log. Every collaborator’s agent reads the log and their phones are notified; a post cannot be unsent.

NameRequiredDescriptionDefault
bodyYesThe text of the post.
kindYesWhat the post is.
project_idYesThe project’s id, from list_projects.
supersedesNoDecisions only: the id of the earlier decision this one replaces (from get_project’s `decisions`). The earlier decision is then marked as no longer current.

TDQS

A4.4/5.0
Behavior5/5

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

Goes well beyond the annotations: it discloses the blast radius (every collaborator's agent reads the log and their phones are notified) and that the action is irreversible (a post cannot be unsent), which corroborates and enriches destructiveHint=true and idempotentHint=false. This is exactly the consequence information an agent needs before committing an unrecallable broadcast.

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

Conciseness5/5

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

Two sentences, no waste, with the purpose front-loaded and the irreversibility warning placed second so it lands before the agent commits. Every clause earns its place.

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 four params, full schema coverage, and no output schema, the description covers purpose, audience, and irreversibility adequately. It leaves the return value (presumably a post id, since `supersedes` references decision ids) unmentioned, which is a minor gap for an agent that may need to chain calls.

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

Parameters3/5

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

Schema coverage is 100%, so all four parameters — including the subtle `supersedes` behavior of demoting an earlier decision — are already documented in structured fields. The description's enumeration of post kinds only restates the `kind` enum and adds no syntax or format detail beyond the schema; baseline 3 applies.

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

Purpose5/5

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

States a specific verb (adds) plus the resource (a project's shared log) and enumerates the four post kinds, which matches the `kind` enum exactly. An agent can distinguish this from create_task (task creation) and get_project/list_projects (reads) without opening the schema.

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 makes the intended use case clear — broadcast-grade posts (handoffs, decisions, blockers, messages) to a team-wide log — which implicitly routes task-shaped work to create_task. It stops short of explicitly naming an alternative or stating when not to use it.

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

Related MCP Connectors

Related MCP Servers

  • F
    license
    Not graded
    quality
    C
    maintenance
    Enables multiple AI coding agents to coordinate on a shared software project by registering, claiming tasks, declaring file intents, publishing structured change reports, and handing off context, with a local dashboard showing state in near real time.
    -
  • A
    license
    B
    quality
    A
    maintenance
    Enables AI coding agents on different machines and accounts to work one repository as a team by declaring file and symbol claims before editing, so collisions are refused up front rather than discovered at merge. It also supports delegating tasks between teammates' agents, which do the work with their own tokens and commit, with replies, commit shas, claims and messages landing on one shared board.
    20
    2
    MIT
  • A
    license
    A
    quality
    A
    maintenance
    Self-hosted task tracker and MCP server for AI coding agents. Append-only case files preserve decisions, failed attempts, questions, and check results across sessions. A live web board lets people track progress and answer agents. Runs locally in Docker and connects to Claude Code, Codex, Cursor, and other Streamable HTTP MCP clients. MIT licensed.
    30
    6
    MIT
Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.