Othos MCP
OfficialClick on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@Othos MCPList my organizations"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
Othos MCP
@othos-io/othos-mcp is a Model Context Protocol (MCP) server for the Othos Platform. It lets AI coding agents and MCP clients authenticate with Othos and work directly with organizations, projects, columns, and tickets.
This package is designed for two main use cases:
Local
stdiousage with coding agents such as Codex, Claude Code, and Cursor.Remote Streamable HTTP deployments protected by OAuth bearer tokens.
Choose The Right Setup
For most new users, the correct setup is the local stdio package installed
with add-mcp.
Use local stdio when:
you are installing the MCP into Codex, Cursor, Claude Code, or a similar desktop coding agent
you want to use
othos_auth_connectyou want the MCP process to open a localhost callback and finish auth on your machine
Use the remote HTTP endpoint only when:
your MCP client already supports transport-level OAuth or bearer auth for remote MCP servers
you already know how the client will obtain and attach the Authorization header for
https://mcp.othos.com.br/mcp
If you are unsure, use local stdio.
Related MCP server: mcp-kaneo
What This Server Can Do
Authenticate to Othos with a browser-based OAuth flow, a bearer token, or cookie-based session auth.
Inspect the current authentication state and active organization context.
List, create, update, and delete projects and columns.
List, create, update, move, assign, unassign, and delete tickets.
Return ticket data in an agent-friendly fixed text template when you want clean chat output.
Run either as a local MCP server over
stdioor as a deployed MCP server over HTTP.
Getting Started
Install with add-mcp
Install the MCP server for all detected coding agents in the current project:
npx add-mcp @othos-io/othos-mcp@latestAdd -y to skip prompts and -g to install globally.
Manual installation
If your MCP client expects a manual config, use:
{
"mcpServers": {
"othos-mcp": {
"command": "npx",
"args": ["-y", "@othos-io/othos-mcp@latest"]
}
}
}Codex CLI
codex mcp add othos-mcp -- npx -y @othos-io/othos-mcp@latestThis is the recommended path for a new user.
Quick Start
For local stdio usage, the recommended flow is:
Install the server in your MCP client.
Start a session and call
othos_auth_connect.Open the returned authorization URL in your browser.
Approve the connection in Othos.
Start using tools such as
othos_organization_list,othos_project_list, andothos_ticket_create.
If you call a protected tool without valid authentication, the server returns an auth-required response that includes the authorization link. After approval in the browser, the local MCP process receives the loopback callback and stores the bearer token automatically.
New User Flow
The intended first-run experience is:
Install the npm package into the MCP client using
add-mcp.Let the MCP client launch the package locally over
stdio.Call
othos_auth_connect.Open the returned browser URL.
Approve access in Othos.
Return to the MCP client and start using organization, project, column, and ticket tools.
The intended first-run experience is not:
connect directly to
https://mcp.othos.com.br/mcpas an unauthenticated HTTP clientexpect
othos_auth_connectto bootstrap auth on that remote transport
That remote path requires transport-level auth before the MCP session is even available.
Authentication
Recommended: browser authorization
othos_auth_connect starts a local OAuth authorization flow and is the best default for local MCP usage.
It can:
Open a browser-based approval flow.
Listen on a localhost callback URL for the browser redirect.
Exchange the authorization code for an Othos bearer token.
Persist the token to disk automatically.
By default, local stdio sessions save the token to:
$XDG_CONFIG_HOME/othos-mcp/personal-token, or$HOME/.config/othos-mcp/personal-token
You can override that with OTHOS_PERSONAL_TOKEN_PATH or the savePath argument.
Direct personal token
If you already have a bearer token, you can provide it directly:
export OTHOS_PERSONAL_TOKEN="othos_pat_v1...."You can also set it from inside the MCP session with othos_auth_set_personal_token.
When a bearer token is available, the server sends it to the Othos API as:
Authorization: Bearer <token>Cookie-based compatibility
Cookie-based auth is still supported for compatibility:
OTHOS_ACCESS_COOKIEOTHOS_ACCESS_TOKENothos_auth_set_cookieothos_auth_loginothos_auth_login_with_personal_token
For new setups, prefer othos_auth_connect or OTHOS_PERSONAL_TOKEN.
Example Prompts
Once connected, your agent can handle prompts like:
Check my Othos authentication status.List my organizations and tell me which one is active.Switch to organization 8f2d...Show me the projects in my current organization.Create a project called Website Redesign.List the columns for project 2c6a...Create a high-priority ticket called Fix OAuth redirect in column 91d4...Move ticket 4a7f... to column c12e...Show ticket 77b2... using the template format.
MCP Tools
The server currently exposes the following tool groups.
Authentication
othos_auth_statuschecks whether the server currently has valid auth configured.othos_auth_connectstarts browser-based authorization and stores the returned bearer token.othos_auth_set_cookiesets auth manually using a cookie or raw access token.othos_auth_set_personal_tokensets a bearer token and can persist it locally.othos_auth_login_with_personal_tokenvalidates and stores a bearer token for API use.othos_auth_loginsigns in with email and password.othos_auth_logoutclears the current auth session.othos_auth_create_personal_tokencurrently returns a compatibility error because the legacy API endpoint is gone.othos_auth_revoke_personal_tokencurrently returns a compatibility error because the legacy API endpoint is gone.
Organizations
othos_organization_listlists organizations available to the authenticated user.othos_organization_currentreturns the current active organization.othos_organization_changeswitches the active organization context.
Projects
othos_project_listothos_project_getothos_project_createothos_project_updateothos_project_deleteothos_project_membersothos_project_assign_memberothos_project_unassign_member
Columns
othos_column_listothos_column_createothos_column_updateothos_column_delete
Tickets
othos_ticket_list_by_columnothos_ticket_list_by_column_templateothos_ticket_getothos_ticket_get_templateothos_ticket_createothos_ticket_updateothos_ticket_moveothos_ticket_deleteothos_ticket_assign_memberothos_ticket_unassign_member
The*_template ticket tools return a fixed, chat-friendly text format that is useful when you want consistent summaries instead of raw JSON.
HTTP Transport with OAuth
Besides local stdio mode, the package can run as a Streamable HTTP MCP server protected by OAuth bearer tokens.
Start the server in HTTP mode:
OTHOS_MCP_TRANSPORT=http \
MCP_HOST=127.0.0.1 \
MCP_PORT=8787 \
node dist/index.js --httpIn HTTP mode:
clients connect to
http://127.0.0.1:8787/mcpbearer authentication is required on the MCP transport
tokens are validated through the Othos introspection endpoint
the local
othos_auth_*helper tools are disabled because auth is handled by the MCP OAuth flowthe server requires the
mcp:toolsscope
For the published remote server at https://mcp.othos.com.br/mcp, a fresh
unauthenticated client should expect the transport to reject the connection
until it provides a valid bearer token. This is expected behavior.
Example unauthenticated remote behavior:
{
"error": "invalid_token",
"error_description": "Missing Authorization header"
}Environment Variables
API and auth
OTHOS_API_URL: Othos API base URL. Defaults tohttps://api.othos.com.br/api/v1.NEXT_PUBLIC_API_URL: fallback API base URL whenOTHOS_API_URLis not set.OTHOS_PERSONAL_TOKEN: Othos bearer token used as API auth.OTHOS_PERSONAL_TOKEN_PATH: absolute path used to load or persist a bearer token. If unset, local stdio mode falls back to$XDG_CONFIG_HOME/othos-mcp/personal-tokenor$HOME/.config/othos-mcp/personal-token.OTHOS_ACCESS_COOKIE: existing Othos cookie header for compatibility mode.OTHOS_ACCESS_TOKEN: existing access token. Non-PAT values are treated as cookie auth.
HTTP transport
OTHOS_MCP_TRANSPORT: set tohttpto enable Streamable HTTP mode.MCP_HOST: HTTP bind host. Defaults to127.0.0.1.MCP_PORT: HTTP bind port. Defaults to8787.OTHOS_OAUTH_RESOURCE_METADATA_URL: OAuth protected resource metadata URL.OTHOS_OAUTH_INTROSPECTION_URL: OAuth token introspection URL.
Local Development
Clone the repository and run:
pnpm install
pnpm build
pnpm typecheck
pnpm startFor development builds:
pnpm devRepository
package name:
@othos-io/othos-mcpsource: othos-io/othos-mcp-server
Available Tools
34 toolsothos_auth_connectB
Start browser-based authorization, poll for approval, and store the returned MCP personal token.
| Name | Required | Description | Default |
|---|---|---|---|
| waitForApprovalSeconds | No | How long to poll for user approval before returning pending status. | |
| savePath | No | Optional absolute path to persist token. Falls back to OTHOS_PERSONAL_TOKEN_PATH. | |
| clientName | No | Display name shown in the authorization page. | |
| scope | No | Optional scopes (space/comma separated). Example: mcp:tools mcp:resources | |
| label | No | Optional connection label shown in Othos token connections. | |
| lifetimeDays | No | Optional token lifetime in days. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description discloses the main behavior (browser auth, polling, token storage) but lacks details on error handling, side effects (e.g., overwriting existing tokens), or permission requirements. Adequate but not comprehensive.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Single, well-structured sentence that efficiently conveys the tool's purpose and process. No superfluous words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the absence of an output schema and the tool's complexity (6 params), the description omits important details like what the tool returns, error states, or prerequisites. It provides the high-level flow but is not fully complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% with per-parameter descriptions. The tool description adds no extra meaning beyond 'start browser auth and store token', so baseline score of 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's function: start browser auth, poll, and store a token. It is a specific verb+resource combination, but does not distinguish between sibling auth tools like othos_auth_login or othos_auth_create_personal_token.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool over siblings (e.g., othos_auth_login). The description implies an interactive browser-based flow but does not specify prerequisites, fallbacks, or 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.
othos_auth_create_personal_tokenB
Generate or rotate an MCP personal token from API and optionally save it to disk.
| Name | Required | Description | Default |
|---|---|---|---|
| lifetimeDays | No | Token lifetime in days (1-365). | |
| savePath | No | Optional absolute path to persist token. Falls back to OTHOS_PERSONAL_TOKEN_PATH. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations exist; the description only states the action without disclosing side effects (e.g., whether an existing token is revoked), authorization requirements, or response behavior.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single, well-front-loaded sentence that conveys the core action efficiently with no unnecessary words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Lacks context on how this tool fits with other auth tools, does not mention output, and fails to explain rotation implications, making it insufficient for an agent to fully understand the operation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema covers both parameters with clear descriptions, and the tool description adds 'optionally save to disk' which aligns with savePath, providing no extra semantic value beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool generates or rotates an MCP personal token and can save it to disk, distinguishing it from sibling tools like revoke or set.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool versus alternatives like othos_auth_set_personal_token, or when to generate vs rotate, leaving the agent without decision support.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
othos_auth_loginA
Login to Othos with email/password. Stores the returned othos-accessToken cookie in memory.
| Name | Required | Description | Default |
|---|---|---|---|
| Yes | |||
| password | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description discloses that the returned access token is stored as a cookie in memory, which is a key behavioral trait. With no annotations provided, this adds useful context for the agent.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences directly convey the purpose and side effect. No unnecessary words. Front-loaded efficiently.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description covers the core behavior but omits what happens on success or failure (e.g., return value or error handling). For a login tool, additional context about the response would be helpful.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The description does not add any additional meaning beyond the schema. With 0% schema description coverage, the description should compensate, but it only mentions email/password generically. No details on format or constraints.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool logs in with email/password and stores a cookie. It distinguishes from siblings like othos_auth_login_with_personal_token by specifying the authentication method.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
While the description implies use for email/password login, it does not explicitly state when to use this over other auth tools (e.g., personal token login). No exclusions or alternatives are mentioned.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
othos_auth_login_with_personal_tokenA
Create a cookie session using an Othos personal token (PAT).
| Name | Required | Description | Default |
|---|---|---|---|
| token | No | PAT. If omitted, uses the configured in-memory token. | |
| tokenPath | No | Optional path to load PAT from disk. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Basic disclosure that it creates a session; no annotations present. Lacks details on side effects (overwrites existing sessions?), error behavior, or prerequisites. Adequate but not thorough.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Single sentence, no wasted words, front-loaded with action and resource. Efficient and clear.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple auth tool with 2 optional parameters and no output schema, the description covers core purpose but doesn't explain what happens when parameters are omitted or if a session is returned. Adequate but not fully complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so schema already documents parameters. Description adds no extra meaning beyond restating that PAT is used. Baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description states action 'Create a cookie session' using a specific resource 'Othos personal token (PAT)'. Clearly distinguishes from siblings like othos_auth_login (different login method) and othos_auth_set_cookie (different context).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool versus alternatives like othos_auth_login or othos_auth_set_cookie. Absence of context for selection.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
othos_auth_logoutA
Logout from Othos and clear auth cookie from this MCP process.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Without annotations, the description discloses key behavior (logout and cookie clearing). However, it omits details about edge cases, such as what happens if not logged in or if multiple sessions exist.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence with no wasted words. It is front-loaded and efficiently conveys the purpose.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the simple nature of the tool (no parameters, no output schema), the description is sufficient. It tells the agent what the tool does. A small improvement could mention that it invalidates the session, but not required.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool has no parameters, and schema coverage is 100% (vacuous). The description does not need to add parameter info, and the baseline is 4 for zero-parameter tools.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action (Logout) and resource (Othos), and specifies it clears an auth cookie. It distinguishes from sibling auth tools by focusing on ending a session and cookie management, unlike token operations or status checks.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage as the inverse of login or after completing work, but does not explicitly state when or when not to use it, nor does it mention prerequisites like being logged in.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
othos_auth_revoke_personal_tokenB
Revoke the current MCP personal token in API.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The word 'Revoke' implies a destructive action, but no details are provided about side effects (e.g., immediate logout, need for re-authentication). With no annotations to rely on, more behavioral context is needed.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Extremely concise—one sentence with no wasted words. Perfectly sized for a simple revoke action.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given zero parameters and no output schema, the description covers the basic purpose. However, it lacks details like idempotency or error states, which would be useful for a destructive action.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
There are no parameters, so the description does not need to clarify them. It implicitly indicates the token being revoked (the current one). Baseline 4 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'Revoke' and the resource 'current MCP personal token', making the purpose explicit. However, it does not differentiate from sibling auth tools, though the action is distinct.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool versus alternatives (e.g., when to revoke vs. log out). No prerequisites or side effects mentioned.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
othos_auth_set_cookieB
Set auth manually using either a full cookie string or a raw access token.
| Name | Required | Description | Default |
|---|---|---|---|
| cookie | No | Full cookie header or at least othos-accessToken=<token> | |
| accessToken | No | Raw token value; server will convert it to othos-accessToken=<token> |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are present, so the description must convey all behavioral traits. It does not mention side effects (e.g., session state changes), error handling, or behavior when both parameters are provided.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single concise sentence with no extraneous information, but it could be structured (e.g., bullet points) for readability.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple setter tool, the description is adequate but could benefit from mentioning that it is for manual token injection from external sources or that it overrides existing auth.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, providing adequate parameter meanings. The description adds no additional insight beyond the schema, warranting the baseline score of 3.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('Set auth manually') and the resources ('full cookie string' or 'raw access token'), distinguishing it from sibling tools like othos_auth_login or othos_auth_create_personal_token.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
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 othos_auth_login. The description lacks context about typical use cases or prerequisites.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
othos_auth_set_personal_tokenC
Set a personal access token (PAT) for Othos and optionally persist it to disk.
| Name | Required | Description | Default |
|---|---|---|---|
| token | Yes | ||
| savePath | No | Optional absolute path to save the token locally. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description must disclose behavior fully. It mentions setting a token and optional persistence but omits side effects like overwriting, authentication impacts, or security considerations (e.g., token storage). This leaves significant behavioral gaps.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single sentence makes it concise but lacks structure; no front-loading, bullet points, or clear separation of mandatory vs optional aspects. Acceptably brief but could be better organized.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the simplicity of the tool (two parameters, no output schema), the description is minimal. It does not explain the token's role in authentication, whether setting overwrites an existing token, or what the return value indicates. Context is incomplete for an agent to confidently invoke.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 50% (only 'savePath' has a description). The description adds nothing beyond the schema, failing to clarify the 'token' parameter's format, length constraints beyond minLength, or how 'savePath' should be used. It partially compensates by noting optional persistence but insufficiently.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('Set'), the resource ('personal access token for Othos'), and the optional persistence to disk. It effectively distinguishes from siblings like 'othos_auth_create_personal_token' (creation) and 'othos_auth_login_with_personal_token' (usage).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
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 'othos_auth_create_personal_token' or 'othos_auth_login_with_personal_token'. There is no mention of prerequisites, scenarios, or context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
othos_auth_statusA
Check whether this MCP server has an Othos auth cookie and/or MCP personal token configured.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must convey behavior. It states 'Check' which implies a read-only operation, but does not explicitly confirm safety, side effects, or idempotency. It adds minimal behavioral context beyond the tool name and the word 'check'.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, front-loaded sentence that efficiently conveys the tool's purpose with no wasted words or unnecessary detail.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple status check tool with no parameters and no output schema, the description adequately explains the action. It could mention the expected output format, but the current description is sufficient for basic usage given the tool's simplicity.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool has zero parameters, and schema coverage is 100% (trivial). Per guidelines, baseline 4 is appropriate since no param description is needed.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'Check' and specifies the resource: whether the server has an Othos auth cookie and/or MCP personal token configured. It effectively distinguishes from sibling auth tools which involve actions like connecting, logging in, or token management.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description indicates this tool is for checking authentication status, providing clear context. It does not explicitly state when not to use it or suggest alternatives, but the purpose is clear from the naming and sibling tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
othos_column_createC
Create a column in a project.
| Name | Required | Description | Default |
|---|---|---|---|
| projectId | Yes | ||
| name | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are available, and the description does not disclose behavioral traits such as idempotency, side effects, authentication requirements, or whether the operation is destructive. For a creation tool, this is a significant gap.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence with no unnecessary words, but it is extremely brief and lacks structure (e.g., bullet points, parameter details). It is concise but under-informative.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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 parameter descriptions, the description is insufficiently complete. An agent cannot determine what the tool returns, how it behaves, or how to correctly invoke it without guessing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has 0% description coverage for parameters, and the description adds no meaning beyond the parameter names. It fails to explain what 'projectId' refers to or any constraints on 'name' beyond the schema's min/max length.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'Create' and the resource 'column' in a project, distinguishing it from sibling tools like delete, list, and update. However, it does not specify the type of column (e.g., status column) or its role in the project.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
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 like othos_column_update or othos_column_delete. The description lacks context for triggering conditions or prerequisites.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
othos_column_deleteC
Delete a column.
| Name | Required | Description | Default |
|---|---|---|---|
| columnId | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations exist, and the description only states 'Delete a column' with no disclosure of whether deletion is irreversible, cascades to related data (e.g., tickets), or requires specific permissions. The agent is left to assume standard destructive behavior.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence with no extraneous text, but it is under-specified. While concise, it lacks necessary context for effective tool selection and invocation.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's destructive nature and lack of annotations/output schema, the description fails to cover important behavioral and contextual details. The one-sentence description is insufficient for safe and correct usage.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With 0% schema description coverage, the description adds no meaning to the 'columnId' parameter beyond what is in the schema. The agent must infer that columnId identifies the column to delete. No format, constraints, or context are provided.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states 'Delete a column', specifying the verb (Delete) and resource (a column). It distinguishes from sibling tools like othos_column_create, othos_column_list, othos_column_update, but lacks additional scoping or context that would merit a 5.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
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. There is no mention of prerequisites, conditions, or exclusions (e.g., whether the column must be empty or if deletion is allowed when tickets exist).
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
othos_column_listC
List columns for a project.
| Name | Required | Description | Default |
|---|---|---|---|
| projectId | Yes |
TDQS
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 disclose behavioral traits like read-only nature, authentication requirements, or pagination behavior. The description only states the basic action.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence, very concise with no redundancies. However, it could include more useful information without becoming overly long.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool has no output schema, no sibling differentiation in the description, and minimal parameter info, the description is insufficient for an agent to fully understand the tool's behavior and context.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema description coverage is 0%, and the description adds no meaning to the single parameter (projectId). It does not explain what the parameter represents beyond the schema's format constraints.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states it lists columns for a project, using a specific verb and resource. It distinguishes from sibling tools like create, update, delete for columns.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool versus alternatives (e.g., othos_ticket_list_by_column). No prerequisites or context provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
othos_column_updateC
Update a column's name or order.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | ||
| projectId | Yes | ||
| name | Yes | ||
| order | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are present, so the description carries full responsibility for behavioral disclosure. It only states 'update' but does not mention idempotency, permissions, error handling, or side effects, leaving significant gaps for an AI agent.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence with no fluff. It is concise, but lacks structure (e.g., separate sections for usage, params). However, it is efficiently written.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple update tool with 4 required parameters and no output schema, the description should provide at least minimal context on behavior and parameter implications. It omits critical details such as the effect on existing columns, required permissions, and error scenarios, making it incomplete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
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. It adds minimal meaning by stating that 'name' and 'order' are updateable fields, but provides no context for 'id' and 'projectId' parameters, and no details on valid values or constraints beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Clearly states the action (update) and resource (column), and specifies the modifiable attributes (name or order). This distinguishes it from sibling tools like othos_column_create and othos_column_delete.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool versus alternatives, no prerequisites, and no exclusions provided. The description simply states what it does without contextual usage advice.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
othos_organization_changeA
Change active organization context. Required when an account has multiple organizations.
| Name | Required | Description | Default |
|---|---|---|---|
| organizationId | Yes |
TDQS
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 only states the action ('Change active organization context') without disclosing side effects, persistence, authorization needs, or error behavior. For a mutation tool, 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise with two sentences, no fluff, and every word is meaningful. It is front-loaded with the essential action.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's simplicity (one parameter, no output schema), the description covers basic purpose and usage context. However, it lacks behavioral details (e.g., return value, persistence) that would make it fully complete without annotations.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%. The description does not mention the 'organizationId' parameter at all, leaving the agent to infer its purpose. Although the parameter's format (uuid) is clear from the schema, the description adds no semantic value.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states 'Change active organization context' with a specific verb and resource. It distinguishes from sibling tools like othos_organization_current (get current) and othos_organization_list (list organizations).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides explicit context: 'Required when an account has multiple organizations.' This tells the agent when to use the tool, though it does not mention alternatives explicitly.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
othos_organization_currentA
Get current active organization for the authenticated user.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so the description carries full burden. It discloses that the tool retrieves the current active organization (a read operation) but does not detail edge cases (e.g., behavior when no organization is active) or any authentication requirements.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Single sentence, no unnecessary words. Perfectly concise for a tool with no parameters.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given no parameters and no output schema, the description covers the essential purpose. It could mention the return value type or behavior for unset organization, but is mostly complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
There are no parameters; schema coverage is 100%. The description does not need to add parameter info. Score at baseline 4 for no parameters.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('Get') and resource ('current active organization'), distinguishing it from siblings like othos_organization_list (which lists all organizations) and othos_organization_change (which changes the active organization).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies that this tool is for retrieving the currently active organization, while siblings cover alternative actions (list, change). However, it does not explicitly state when not to use it or provide prerequisites.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
othos_organization_listA
List organizations available for the authenticated user.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided. Description straightforwardly indicates a read-only list operation with no destructive side effects. Lacks detail on return format or data volume, but adequate for a simple listing.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Single sentence with no redundancy. Front-loaded with verb and resource.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a parameterless list tool with no output schema, description adequately states function and scope. Could mention return format (e.g., list of organization IDs/names) but not essential.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
No parameters in schema. Description adds no parameter info beyond purpose, but baseline for 0 parameters is 4. Schema coverage is 100% trivial.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description clearly states verb 'List', resource 'organizations', and scope 'available for the authenticated user'. Distinct from siblings like othos_organization_current (current org) and othos_organization_change (change org).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Implied usage for retrieving all accessible organizations. No explicit when-not or alternatives mentioned, but context differentiates from sibling tools that retrieve current org or change it.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
othos_project_assign_memberC
Assign an existing member to a project.
| Name | Required | Description | Default |
|---|---|---|---|
| projectId | Yes | ||
| memberId | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so description bears full burden. It says 'assign' (a write operation) but does not disclose side effects (e.g., whether it's additive or replaces existing assignments), permission requirements, or idempotency. Minimal behavioral disclosure.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single sentence is concise, but it lacks structure. It is not front-loaded with key details; it simply states the action. While brief, it misses opportunities to prioritize critical information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool has 2 UUID parameters, no output schema, and no annotations, the description is incomplete. It does not cover prerequisites, return behavior, or error cases. For a simple assignment tool, it is minimally adequate but lacks completeness.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so description must compensate. It does not explain projectId or memberId beyond their names. The agent gains no additional meaning about what constitutes a valid member or project.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action 'assign an existing member to a project' with a specific verb and resource. It distinguishes from sibling tools like 'othos_project_unassign_member' and 'othos_ticket_assign_member', though it could be more precise about what 'existing member' means.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool versus alternatives, prerequisites (e.g., member must exist in system, project must exist), or when not to use. The description lacks context about checking current members via 'othos_project_members' first.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
othos_project_createC
Create a new project.
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, and the description only states 'Create a new project.' It fails to disclose any behavioral traits such as authentication requirements, idempotency, or side effects (e.g., duplicate name handling).
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise at one sentence. While it could include more detail, there is no unnecessary text, and the structure is efficient for a simple tool.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With one parameter and no output schema, the description is too minimal. It does not explain return values, error conditions, or what constitutes a 'project' in this context. Additional context is needed for a complete understanding.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%. The description does not explain the 'name' parameter at all, despite it being the only parameter. The schema shows min/max length, but no additional meaning is added.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'create' and resource 'project', but it does not distinguish from sibling tools like 'othos_project_update' or 'othos_project_delete'. However, the meaning is unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool versus alternatives, or prerequisites like authentication. The description provides no context for appropriate usage.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
othos_project_deleteC
Delete a project by ID.
| Name | Required | Description | Default |
|---|---|---|---|
| projectId | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description must convey behavioral traits. It only says 'Delete a project' without disclosing whether deletion is permanent, if it requires ownership, or if it cascades to related entities.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise, using one sentence with no filler. However, it sacrifices necessary detail, so while efficient, it is under-specified.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given no output schema and no annotations, the description fails to cover return values, error conditions, or side effects. Incomplete for a delete operation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 0%, so the description should compensate. It adds only 'by ID', which adds little beyond the schema's uuid format and pattern. No explanation of the parameter's meaning or validation.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action 'Delete' and the resource 'project by ID', effectively distinguishing it from sibling tools like othos_project_create or othos_project_get.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No usage guidelines are provided. The description lacks instructions on when to use this tool versus alternatives, prerequisites (e.g., project must not have dependent tickets), or potential side effects.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
othos_project_getB
Get a project by its ID.
| Name | Required | Description | Default |
|---|---|---|---|
| projectId | Yes |
TDQS
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 'Get', which is read-only, but does not mention whether authentication is needed, if authorization scopes exist, or what the response contains. Minimal transparency.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single, clear sentence with no superfluous words. Efficiently conveys the core purpose.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple get-by-ID operation with one parameter and no output schema, the description is adequate but lacks details like return value structure or authentication requirements. It meets the minimum but could be more helpful.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema coverage is 0% (no descriptions), so the description should add meaning. It mentions 'projectId' via context but does not explain its purpose or constraints beyond what the schema provides (UUID format). No additional clarity.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description is concise and clearly states the action: 'Get' a 'project' by its 'ID'. This distinguishes it from siblings like list, create, update, delete, which have different verbs and purposes.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool versus alternatives like othos_project_list. Context such as prerequisites (e.g., authentication) or when to use by ID vs listing is absent.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
othos_project_listA
List projects for the current active organization.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, and the description does not disclose side effects, permissions, or any limitations (e.g., only returns projects where user is member). For a list operation, details about pagination or default ordering are absent.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence of 9 words, which is very concise. However, it may be overly brief, omitting context that could improve usability.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given no output schema and no parameters, the description tells what the tool does but lacks details about return format or prerequisites (e.g., authentication, active organization must be set). It is minimally complete for a simple tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
There are 0 parameters, so the description adds no parameter information. Per guidelines, baseline is 4. The schema coverage is 100% but trivial.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'List' and the resource 'projects', scoped to 'current active organization'. It distinguishes from sibling tools like othos_project_get (single project) and othos_project_create.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage context (list all projects for active organization), but does not explicitly state when to use this tool over alternatives like othos_project_get or othos_project_members. No exclusions or prerequisites provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
othos_project_membersC
List members assigned to a project.
| Name | Required | Description | Default |
|---|---|---|---|
| projectId | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description implies read-only behavior but does not disclose permissions, pagination, rate limits, or response structure. Without annotations, the description should provide more context, such as whether the tool lists all members or returns minimal info.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence, front-loaded, with no unnecessary words. It is as concise as possible for the given purpose.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the lack of output schema and annotations, the description is incomplete. It does not indicate what fields the returned members will have, or if there are any limits (e.g., pagination). For a simple list tool, more context would be helpful.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 0%, and the description adds no meaning to the projectId parameter. While the parameter name is self-explanatory, the description does not explain that the projectId is used to filter the list, or mention any constraints.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description 'List members assigned to a project' clearly specifies verb and resource, and distinguishes from sibling tools like othos_project_assign_member and othos_project_unassign_member. However, it does not specify scope (e.g., all members or filtered) or output format, which would make it clearer.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool versus alternatives like othos_project_get (which might also list members) or modifiers like assign/unassign. The agent must infer from sibling names, which is not explicit.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
othos_project_unassign_memberB
Remove a member from a project.
| Name | Required | Description | Default |
|---|---|---|---|
| projectId | Yes | ||
| memberId | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description does not disclose behavioral aspects beyond the action itself. For a mutation, it omits effects, reversibility, permission requirements, or potential side effects. No annotations are provided to compensate.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, clear sentence with no filler words. It efficiently conveys the core purpose without redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple removal tool with two required UUIDs and no output schema, the description is too sparse. It fails to explain return type, success indicators, or preconditions, leaving the agent underinformed.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With 0% schema description coverage, the description adds minimal parameter context. It implies projectId and memberId identify the project and member, but lacks detail on where to obtain these IDs or what constitutes a valid membership.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description explicitly states the action 'Remove a member from a project', using a specific verb and resource. This clearly distinguishes it from sibling tools like othos_project_assign_member (adds) and othos_ticket_unassign_member (different resource).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
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 like othos_ticket_unassign_member, or any prerequisites (e.g., existing membership). The description lacks context for appropriate usage.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
othos_project_updateC
Update a project name.
| Name | Required | Description | Default |
|---|---|---|---|
| projectId | Yes | ||
| name | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries full behavioral disclosure burden but fails to mention side effects, permissions required, or operation atomicity. The agent gets no information beyond the basic action.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely short (4 words) and lacks structure. While it is concise, it does not earn its place by adding value beyond the name; a slightly longer description with usage notes would improve clarity.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple update tool, the description is minimally adequate. It covers the core purpose but omits return values, error conditions, and any behavioral context, leaving the agent with incomplete expectations.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, meaning parameter descriptions are missing. The description adds no meaning beyond the schema (e.g., does not explain projectId format or name constraints). The agent must infer from field types and patterns alone.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description explicitly states 'Update a project name,' which clearly identifies the action and resource. The input schema confirms only name is mutable, distinguishing it from other project tools like assign_member or create.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No usage context is provided. The description does not indicate when to use this tool versus alternatives (e.g., for other project updates), nor does it mention prerequisites like project existence or authorization.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
othos_ticket_assign_memberC
Assign a member to a ticket.
| Name | Required | Description | Default |
|---|---|---|---|
| ticketId | Yes | ||
| memberId | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must fully disclose behavior. It only says 'Assign' without detailing side effects (e.g., overwriting existing assignee), authentication requirements, or confirmation of success. This is insufficient 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence, concise and front-loaded. It efficiently conveys the basic action, though more context could be added without becoming verbose.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given no annotations, no output schema, and two required parameters, the description is incomplete. It does not explain return values, error conditions (e.g., invalid IDs), or what happens on success. A mutation tool with these gaps is inadequately documented.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
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. While 'ticketId' and 'memberId' are self-explanatory, there is no clarification on what constitutes a valid member (e.g., must belong to the ticket's project).
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool assigns a member to a ticket, using a specific verb and resource. However, it does not differentiate from the sibling tool othos_ticket_unassign_member, so it lacks sibling differentiation.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
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 (e.g., othos_ticket_unassign_member or othos_project_assign_member). There is no context on prerequisites like ticket existence or member eligibility.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
othos_ticket_createB
Create a ticket in a column. Description may be TipTap JSON, Markdown, or plain text; the MCP always converts it to serialized TipTap JSON before sending it to the API.
| Name | Required | Description | Default |
|---|---|---|---|
| title | Yes | ||
| description | No | Optional ticket description. You can send Markdown, plain text, or a serialized TipTap JSON doc string. The MCP converts non-TipTap input to TipTap JSON before sending. | |
| columnId | Yes | ||
| priority | No | Medium | |
| order | No | If omitted, server auto-uses the next order for this column. | |
| isSubTicket | No | ||
| parentTicketId | No | ||
| dueDate | No | ISO 8601 string (example: 2026-03-27T18:00:00Z). |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden. It discloses one key behavioral trait: the MCP converts description formats to TipTap JSON. However, it omits other relevant behaviors such as authentication requirements, side effects (e.g., ticket creation triggers notifications), or the response format.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise, consisting of two short sentences. The first sentence states the core purpose, and the second adds a valuable implementation detail. No wasted words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a tool with 8 parameters and no output schema, the description is insufficient. It does not explain the return value, constraints on parameters (e.g., priority enum, numeric range for order), or any side effects. The behavioral detail on description conversion is helpful but not enough to provide a complete picture.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is low at 38%. The description adds no new meaning beyond what is already in the schema's parameter descriptions (e.g., the description parameter's format details are repeated from the schema). Other parameters like title, columnId, priority, etc., receive no additional semantic context from the description.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description explicitly states 'Create a ticket in a column,' which is a specific verb-resource pair. It clearly distinguishes from sibling tools like othos_ticket_update, othos_ticket_delete, etc.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
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 (e.g., othos_ticket_update for modifications, othos_ticket_get to retrieve). The description does not include any usage context or exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
othos_ticket_deleteC
Delete a ticket.
| Name | Required | Description | Default |
|---|---|---|---|
| ticketId | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided; the description only says 'Delete a ticket,' omitting critical behaviors like permanence, cascading effects (e.g., assigned members), authorization needs, or error states.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Extremely concise but at the expense of completeness. Only 4 words, missing necessary detail for a delete operation. Not optimally front-loaded with critical info.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a destructive operation with no annotations and no output schema, the description is severely incomplete. It should explain irreversibility, success/failure indicators, and required permissions.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 0%; the description does not explain the ticketId parameter beyond its name and type. With no parameter descriptions, the agent lacks clarity on required format or meaning.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'Delete' and the resource 'a ticket', distinguishing it from create, get, and update siblings. However, it lacks specificity on deletion behavior (e.g., soft vs hard delete).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool versus alternatives like updating ticket status or moving. No preconditions or postconditions mentioned.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
othos_ticket_getB
Get one ticket by ID using the fixed chat template format.
| Name | Required | Description | Default |
|---|---|---|---|
| ticketId | Yes | ||
| summaryMaxLength | No | Max summary length for ticket description. Default: 240. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are present, so the description must fully disclose behavior. It mentions a 'fixed chat template format' but does not explain what this format entails, nor does it confirm read-only status, auth requirements, or rate limits. This leaves significant ambiguity for a read operation.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence with no unnecessary words. The key purpose and distinguishing detail are front-loaded, making it easy to scan.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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 insufficient. It does not mention what the 'fixed chat template format' output looks like, whether summaryMaxLength truncates, or any error conditions. For a simple get tool, more context is needed for a complete understanding.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 50% (only summaryMaxLength has a description). The tool description adds no additional meaning for ticketId beyond what the name implies. For summaryMaxLength, it repeats the schema's constraint without adding context about its impact on the response. The description does not compensate for the missing schema description of ticketId.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('Get'), the resource ('one ticket'), and a distinguishing detail ('by ID using the fixed chat template format'). This effectively differentiates it from sibling tools like list or update.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description lacks guidance on when to use this tool versus alternatives such as othos_ticket_list_by_column or othos_ticket_get_template. No when-not-to-use or exclusionary criteria are provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
othos_ticket_get_templateC
Get one ticket by ID and render it with the fixed chat template format.
| Name | Required | Description | Default |
|---|---|---|---|
| ticketId | Yes | ||
| summaryMaxLength | No | Max summary length for ticket description. Default: 240. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, and the description only mentions 'render with the fixed chat template format' without explaining side effects, return format, or whether the ticket is modified. The read-only nature is implied but not explicit.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, concise sentence that directly states the tool's action and output format with no extraneous words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema, the description could better explain what the rendered template looks like. The sibling set includes a plain get, so the template aspect is a key differentiator, but it's not fully expounded.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema includes a summaryMaxLength parameter with a description, but the tool description does not add any additional meaning for either parameter. It only mentions 'by ID,' which is already implied by the required ticketId.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states it fetches a ticket by ID and renders it in a fixed chat template format, distinguishing it from the plain get_ticket sibling. However, it does not explicitly name the alternative tool or contrast use cases.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this vs the plain get_ticket or other template tools. The description implies chat template usage but doesn't state when not to use it or prerequisites.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
othos_ticket_list_by_columnC
List tickets from a column using the fixed chat template format.
| Name | Required | Description | Default |
|---|---|---|---|
| columnId | Yes | ||
| summaryMaxLength | No | Max summary length for ticket description. Default: 240. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description must disclose all behavioral traits. It fails to mention whether the tool is read-only, requires authentication, or any side effects. The phrase 'fixed chat template format' is vague and does not explain output behavior.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is very short (one sentence), which is not necessarily concise if it omits essential information. It is front-loaded with the core action but lacks structure for understanding usage details.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the complexity of listing tickets with a specific template format, the description should explain what the template is, how the output looks, and any defaults. It fails to provide enough context for an AI agent to use it correctly, especially with no output schema.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is only 50% (summaryMaxLength described, columnId not). The description adds no explanation for the parameters, not even the required columnId. It does not compensate for the missing schema descriptions.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action (list tickets) and the resource (from a column). It adds context about using a 'fixed chat template format', which hints at a specific output format, though the term could be more precise. It distinguishes from siblings like othos_ticket_list_by_column_template.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool versus other ticket listing tools (e.g., othos_ticket_get, othos_ticket_list_by_column_template). No exclusions or prerequisites are mentioned.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
othos_ticket_list_by_column_templateC
List tickets from a column using a fixed chat template: title, priority, id, status, assignees, due date, and summary.
| Name | Required | Description | Default |
|---|---|---|---|
| columnId | Yes | ||
| summaryMaxLength | No | Max summary length for ticket description. Default: 240. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so the description must fully disclose behavioral traits. It only states it lists tickets with specific fields, but does not mention side effects, permissions required, pagination, or whether it is read-only. The read-only nature is implied but not explicit.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence that conveys the core purpose efficiently without extraneous words. It is front-loaded with the action and resource.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given no output schema and no annotations, the description is too sparse. It does not explain what the output looks like, how the template works, or typical use cases. For a listing tool, more context about the return format or sorting would be helpful.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With schema coverage at 50%, the description adds minimal meaning beyond the schema. 'columnId' is not described in the schema, and the description only indirectly implies it identifies the column. 'summaryMaxLength' has a schema description, but the tool description does not elaborate further. The description does not compensate for the undocumented parameter.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states it lists tickets from a column with a fixed template including fields like title, priority, id, etc. It distinguishes itself from a sibling tool 'othos_ticket_list_by_column' by mentioning a fixed chat template, but does not explicitly differentiate when to use which.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool versus other list tools like 'othos_ticket_list_by_column' or when not to use it. The description lacks context about prerequisites or alternative approaches.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
othos_ticket_moveA
Move a ticket to another column/order while preserving title, description, priority and due date.
| Name | Required | Description | Default |
|---|---|---|---|
| ticketId | Yes | ||
| targetColumnId | Yes | ||
| targetOrder | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description should disclose behavioral traits. It mentions preserving certain fields, which is helpful, but lacks information on side effects, authentication needs, or failure modes.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single concise sentence (15 words) that front-loads the action and key details, with no extraneous information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the complexity of a move operation and lack of annotations/output schema, the description omits crucial context like prerequisites, success/error responses, and potential restrictions, making it incomplete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
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. The description does not explain any parameter beyond obvious names, providing no additional semantics for ticketId, targetColumnId, or targetOrder.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action (Move) and the resource (ticket), specifying what is preserved (title, description, priority, due date), distinguishing it from sibling tools like ticket_update or ticket_create.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies the tool is for moving tickets, but does not provide explicit guidance on when to use it vs alternatives (e.g., when not to use, or comparisons with ticket_update for changing columns).
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
othos_ticket_unassign_memberB
Remove a member assignment from a ticket.
| Name | Required | Description | Default |
|---|---|---|---|
| ticketId | Yes | ||
| memberId | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries full burden. It only states the action without disclosing side effects, prerequisites, or return behavior.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single sentence with no wasted words, though it could benefit from additional context.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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 for an agent to fully understand the tool's behavior.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
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 raw schema, leaving parameters like memberId unexplained.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb ('Remove') and resource ('member assignment') and distinguishes from the sibling tool 'othos_ticket_assign_member'.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies the use case is unassigning a member from a ticket, but it does not provide explicit guidance on when to use versus alternatives or conditions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
othos_ticket_updateB
Update a ticket's details. Description may be TipTap JSON, Markdown, or plain text; the MCP always converts it to serialized TipTap JSON before sending it to the API.
| Name | Required | Description | Default |
|---|---|---|---|
| ticketId | Yes | ||
| title | Yes | ||
| description | No | Optional ticket description. You can send Markdown, plain text, or a serialized TipTap JSON doc string. The MCP converts non-TipTap input to TipTap JSON before sending. If omitted, the current description is preserved. | |
| columnId | Yes | ||
| priority | No | Medium | |
| order | Yes | ||
| isSubTicket | No | ||
| parentTicketId | No | ||
| dueDate | No | ISO 8601 string (example: 2026-03-27T18:00:00Z). |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Discloses that the MCP converts the description to TipTap JSON, which is beyond the schema. However, it does not clarify whether updates are partial or full, nor the outcome for other fields beyond description.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences with no wasted words. First sentence states purpose, second adds critical behavioral detail about description conversion. Highly concise.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With 9 parameters, 4 required, and no output schema, the description is incomplete. It lacks return value info, error cases, and prerequisites. Only description parameter gets behavioral context.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is only 22%. The description adds meaning for 'description' parameter (format conversion) but provides no additional semantics for the other 8 parameters, failing to compensate for low schema coverage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states 'Update a ticket's details', specifying the verb and resource. It does not explicitly differentiate from sibling tools like ticket_move or ticket_assign_member, but the focus on updating general details is clear.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool versus alternatives like ticket_move or ticket_assign_member. No mention of prerequisites or context for use.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
TDQS
Tools are grouped by resource and have distinct actions, but there is some overlap between `ticket_get` and `ticket_get_template`, and `ticket_list_by_column` and `ticket_list_by_column_template`. The descriptions clarify the differences, so only minor ambiguity.
All tools follow a consistent `othos_{resource}_{action}` pattern using snake_case, making it predictable and easy to understand.
With 34 tools covering auth, organizations, columns, projects, and tickets, the count is on the higher side but still reasonable for a full-featured project management API. No excessive bloat.
The toolset covers core CRUD operations for all major resources and supports authentication flows. Minor gaps exist, such as lack of ticket search/filter options beyond column listing, but essential workflows are complete.
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Connectors
MCP server connecting AI agents to 100+ apps (Gmail, Slack, Notion, GitHub) via one-click OAuth.
MCP server for Argo RPG Platform — connects AI assistants to campaign data via OAuth2
Nifty's MCP server — exposes tasks, projects, messages, and files as tools for AI agents.
MCP server that lets AI assistants use all OneSchema features exposed via the public API.
Related MCP Servers
- AlicenseNot gradedqualityDmaintenanceMCP Server for AI agent identity and authorization. Create, verify, and manage agent identities with trust scores and scoped authorization tokens.MIT
- AlicenseNot gradedqualityAmaintenanceMCP server for Kaneo task management API. Lets your AI coding assistant manage tasks, projects, labels, and comments in Kaneo.3174MIT
- AlicenseNot gradedqualityBmaintenanceMCP server for Atlassian Cloud (Confluence & Jira) with seamless OAuth 2.0 authentication. Enables AI agents to document work in Confluence, manage Jira issues, and understand project context.4MIT
- FlicenseNot gradedqualityDmaintenanceA production-ready MCP server that authenticates agents via OAuth 2.1 Bearer tokens, validates JWTs with JWKS, enforces tool-level scopes and roles, and logs the full delegation chain.
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/othos-io/othos-mcp-server'
If you have feedback or need assistance with the MCP directory API, please join our Discord server