MCP Runrun.it
Click 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., "@MCP Runrun.itlist my open tasks"
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.
MCP Runrun.it
Servidor MCP (Model Context Protocol) para comunicação com a API do Runrun.it. Expõe ferramentas de Tasks e Comments para uso no Cursor ou em outros clientes MCP.
Arquitetura
O projeto adota o padrão Arquitetura Hexagonal (Ports & Adapters): o núcleo da aplicação fica isolado de detalhes de transporte (stdio, HTTP) e do cliente HTTP do Runrun.it. As portas definem contratos de entrada (MCP) e saída (acesso à API); os adaptadores implementam esses contratos (transporte e cliente HTTP).
Mapeamento no projeto
Núcleo / aplicação: regras e orquestração dos casos de uso (Tasks e Comments). Arquivos:
src/application/tasks.ts,src/application/comments.ts; em uma evolução podem depender apenas de uma abstração de "cliente Runrun.it" (porta de saída).Porta de entrada (driving): protocolo MCP (ListTools, CallTool). Implementada em
src/adapters/driving/app.ts(registro de tools e handler que delega para a aplicação).Adaptadores de entrada: como o MCP é acessado —
src/index.ts(stdio) esrc/server.ts(HTTP). Ambos usam o mesmocreateMcpServer().Porta de saída (driven): contrato para acessar o Runrun.it (listar/criar tarefas, comentários, etc.). Hoje usada implicitamente; em uma evolução pode ser uma interface TypeScript injetada.
Adaptador de saída: implementação HTTP da API Runrun.it em
src/adapters/driven/api.ts(auth,runrunitFetch, tratamento de erros).
Fluxo
flowchart LR
subgraph driving [Driving]
Client[Cursor / Cliente MCP]
Transport[Adaptadores stdio / HTTP]
MCP[app.ts - MCP Tools]
end
subgraph core [Núcleo]
App[Application - tasks.ts / comments.ts]
end
subgraph driven [Driven]
Port[Porta Runrun.it]
Adapter[api.ts - Cliente HTTP]
API[API Runrun.it]
end
Client --> Transport
Transport --> MCP
MCP --> App
App --> Port
Port --> Adapter
Adapter --> APIEstrutura de pastas
Pasta / Arquivos | Papel |
| Pontos de entrada (adaptadores de transporte stdio e HTTP) |
| Domínio (tipos e portas para evolução futura) |
| Núcleo de aplicação: |
| Adaptador de entrada: |
| Adaptador de saída: |
A separação permite trocar o transporte (stdio vs HTTP) sem alterar o núcleo e, no futuro, mockar ou trocar a implementação da API Runrun.it para testes ou outros backends.
Related MCP server: ClickUp Multi-Workspace MCP Server
Autenticação
A API do Runrun.it exige dois headers em toda requisição:
App-Key: identifica a conta (obtido em Integração e Apps → API e Webhooks)
User-Token: token do usuário em nome do qual as ações são executadas
Configure as variáveis de ambiente (ou no JSON de configuração do MCP no Cursor):
RUNRUNIT_APP_KEY— chave da aplicaçãoRUNRUNIT_USER_TOKEN— token do usuário
Cloudinary (opcional, para as skills de evidências e upload de imagens):
CLOUDINARY_CLOUD_NAME— nome da cloud no CloudinaryCLOUDINARY_API_KEY— API keyCLOUDINARY_API_SECRET— API secret (nunca expor no client-side)
Instalação e utilização local
cd mcp-runrunit
npm install
npm run buildUso no Cursor
Abra as configurações do Cursor (MCP).
Adicione o servidor no arquivo de configuração de MCP (por exemplo em
.cursor/mcp.jsonou nas configurações do Cursor).
Exemplo de configuração (ajuste o caminho para o seu projeto):
{
"mcpServers": {
"runrunit": {
"command": "node",
// Use o caminho absoluto para `dist/index.js` no seu ambiente.
"args": ["caminho-do-repositório-local/mcp-runrunit/dist/index.js"],
"env": {
"RUNRUNIT_APP_KEY": "sua_app_key",
"RUNRUNIT_USER_TOKEN": "seu_user_token",
"CLOUDINARY_CLOUD_NAME": "sua_cloud",
"CLOUDINARY_API_KEY": "sua_api_key",
"CLOUDINARY_API_SECRET": "seu_api_secret"
}
}
}
}
// ou
"runrunit-mcp": {
"url": "http://localhost:3000/mcp",
"env": {
// Nesse modo é importante criar o arquivo .env na raiz do mcp ./plugin-sentinel-mcp/mcp-runrunit
}
},Uso via npm (para outras pessoas)
Depois de publicado no npm, qualquer pessoa pode usar com npx sem clonar o repositório:
{
"mcpServers": {
"runrunit": {
"command": "npx",
"args": ["-y", "mcp-runrunit"],
"env": {
"RUNRUNIT_APP_KEY": "<RUNRUNIT_APP_KEY>",
"RUNRUNIT_USER_TOKEN": "<RUNRUNIT_USER_TOKEN>",
"CLOUDINARY_CLOUD_NAME": "<CLOUDINARY_CLOUD_NAME>",
"CLOUDINARY_API_KEY": "<CLOUDINARY_API_KEY>",
"CLOUDINARY_API_SECRET": "<CLOUDINARY_API_SECRET>",
"BOT_DISCORD_TOKEN_PUBLIC_ID": "<BOT_DISCORD_TOKEN_PUBLIC_ID>",
"BOT_RUNRUNIT_REPORT_PRIVATE_KEY": "<BOT_RUNRUNIT_REPORT_PRIVATE_KEY>",
"DISCORD_GUILD_ID": "<DISCORD_GUILD_ID>",
"DISCORD_CHANNEL_ID": "<DISCORD_CHANNEL_ID>"
}
}
}
}Cursor Skills (evidências, PR, comentários na task, agents)
O pacote inclui a pasta cursor-skills/ com skills para uso no Cursor: registrar-evidencias, upload-image-cloudinary, create-pr-github, comentar-task-runrunit, code-reviewer, install-cursor-team-skills (atalho que orienta usar a tool abaixo). Para instalar ou sincronizar tudo no PC de um colega, use a tool MCP runrunit_install_cursor_skills (recomendado: dry_run: true primeiro; usa os.homedir() e funciona em Windows, macOS e Linux). Parâmetros opcionais: skill_names, target (global ou project + project_root), source_dir se a pasta não for encontrada ao lado do pacote.
Alternativa manual: copie (ou crie link) das pastas em node_modules/mcp-runrunit/cursor-skills/ para um destes diretórios:
Global:
~/.cursor/skills/(ex.:~/.cursor/skills/registrar-evidencias, etc.)Por projeto:
.cursor/skills/ou.agents/skills/na raiz do projeto
As skills que fazem upload de imagens (evidências em PRs e comentários Runrun.it) usam Cloudinary; configure CLOUDINARY_CLOUD_NAME, CLOUDINARY_API_KEY e CLOUDINARY_API_SECRET no env do MCP ou no ambiente.
Ferramentas (Tools)
Tasks
Ferramenta | Descrição |
| Lista tarefas com filtros opcionais (ids, responsible_id, assignee_id, filter_id, board_stage_id, project_id, etc.) |
| Lista filtros de tarefas (para obter filter_id de "Minhas partes abertas") |
| Lista stages do board (Task, Ongoing, Manager Validation) — use com runrunit_move_task_stage ao mover por nome |
| Move uma tarefa para uma etapa/coluna do board (task_id + board_stage_id ou board_stage_name). Para etapas que exigem "Link da branch", preencher antes com runrunit_update_task |
| Retorna uma tarefa pelo ID |
| Lista subtarefas de uma tarefa |
| Cria tarefa (obrigatório: title, type_id; opcional: project_id, assignments, desired_date, etc.) |
| Atualiza tarefa (id + objeto com campos a atualizar, ex.: title, desired_date, link_da_branch). Para mover entre colunas use runrunit_move_task_stage |
| Remove uma tarefa |
| Cria workflow para uma tarefa (permite iniciar tracking) |
| Inicia tracking (play) em um assignment de tarefa |
Comments
Ferramenta | Descrição |
| Lista comentários de uma tarefa |
| Retorna um comentário pelo ID |
| Cria comentário em tarefa (task_id, text) |
| Cria comentário na sessão externa/guest (compartilhada com clientes; channel_name: guest) |
| Edita o texto de um comentário |
| Remove um comentário |
| Adiciona reação (emoji) a um comentário |
Discord
Ferramenta | Descrição |
| Envia mensagem em um canal do Discord (channel_id, content; opcional task_id, project_id). Requer BOT_RUNRUNIT_REPORT. |
| Cria um canal de texto no servidor (guild). Parâmetros: name (slug, ex.: client-1); opcional guild_id, parent_id, topic. Usa DISCORD_GUILD_ID se guild_id não for passado. |
| Lista canais do servidor Discord. guild_id opcional (usa DISCORD_GUILD_ID ou resolve por DISCORD_CHANNEL_ID). |
| Obtém ou cria um canal por cliente Runrun.it (1 canal por cliente). client_id ou client_name (ex.: "Client 1" → slug client-1). Retorna channel_id e channel_name; use antes de enviar mensagens. |
Cursor (skills do pacote)
Ferramenta | Descrição |
| Copia as pastas de |
Skills
Skills em cursor-skills/:
Skill | Descrição |
| Revisão de código alinhada aos padrões da agência. Use ao revisar PRs, sugerir melhorias ou validar implementações. |
| Captura screenshots em múltiplos viewports (mobile, tablet, desktop) a partir de URLs "antes" e "depois". Usar para evidências visuais, comparar antes/depois, documentar mudanças de UI ou preparar imagens para PRs e relatórios. |
| Upload de imagens para Cloudinary e retorno de URLs públicas. Usar quando screenshots ou evidências precisarem ser hospedadas (ex.: body da PR, docs). Requer CLOUDINARY_CLOUD_NAME, CLOUDINARY_API_KEY e CLOUDINARY_API_SECRET. |
| Orquestra evidências e comentário na tarefa do Runrun.it: captura antes/depois, upload no Cloudinary, opcionalmente abre PR e cria comentário na task com resumo, passo a passo de teste e links; grava link_da_branch na task se houver PR. |
| Cria um pull request bem estruturado, com descrição, rótulos, revisores e evidências visuais. Inclui preparar branch, descrição, checklist e output obrigatório (link da PR, branch, ambiente de destino). |
| Skill mínima que indica chamar a tool |
Agents
Agente | Nome exibido | Descrição | Quando usar |
context-bridge | Doc-Brief (Implementation Brief) | Filtro de documentação técnica: extrai lógica de implementação, assinaturas e dependências em Implementation Briefs de alta densidade; remove marketing e redundância. | Quando precisar transformar documentação longa em um resumo técnico pronto para implementação (Quick Start, Core Logic, API Reference, Gotchas). |
kieran-typescript-reviewer | kieran-typescript-reviewer | Revisa código TypeScript com barra de qualidade alta em type safety, padrões modernos e manutenibilidade. | Após implementar features, modificar código ou criar novos componentes TypeScript; para garantir convenções e boas práticas. |
mentor | Mentor mode | Ajuda a mentorar o engenheiro com orientação e suporte, sem editar código. | Quando quiser desafiar premissas, fazer perguntas socráticas e guiar a solução sem dar a resposta pronta. |
performance-optimizer | performance-optimizer | Especialista em otimização de performance, profiling, Core Web Vitals e otimização de bundle. | Para melhorar velocidade, reduzir tamanho de bundle e otimizar runtime; termos: performance, optimize, speed, slow, memory, cpu, benchmark, lighthouse. |
prd | Create PRD Chat Mode | Gera um PRD (Product Requirements Document) em Markdown com user stories, critérios de aceite, considerações técnicas e métricas; opcionalmente cria issues no GitHub. | Para documentar requisitos de produto de forma estruturada e, se desejado, gerar issues a partir das user stories. |
toph | Toph | Especialista em acessibilidade web (WCAG 2.1/2.2), UX inclusiva e testes de a11y. | Para revisar acessibilidade, teclado, foco, ARIA, formulários, mídia, testes com leitores de tela e ferramentas (axe, pa11y, Lighthouse). |
security-reviewer | security-reviewer | Revisor focado em segurança: vulnerabilidades e boas práticas. | Para checar injeção (SQL, XSS, comandos), autenticação/autorização, dados sensíveis, criptografia, dependências e validação de entrada. |
Contexto para o agente (uso assertivo das tools)
Para que o Cursor/IA use as tools de forma assertiva e inteligente, consulte:
docs/CONTEXTO-AGENTE.md— quando usar cada tool, parâmetros (tipos, formatos), fluxos recomendados, erros comuns e glossário Runrun.it.docs/Atlassian-Jira-com-Runrun.it.md— como usar Atlassian (Jira) junto com o MCP Runrun.it (dois MCPs no Cursor, vínculo task ↔ issue, automação via Zapier).
No workspace do plugin existe também a regra Runrun.it MCP em .cursor/rules/runrunit-mcp.mdc, que resume essas orientações para o agente.
Documentação da API
Os endpoints seguem a documentação oficial do Runrun.it. No repositório do plugin, a pasta docs/ contém os markdowns de referência (por exemplo docs/Tasks.md e docs/Comments.md). Use docs/Indíce.md para localizar os demais endpoints. Para configurar o fluxo de trabalho (Task, Ongoing, Manager Validation), consulte docs/Workflow-Config-Exemplo.md.
Base URL da API
https://runrun.it/api/v1.0/
Respostas são JSON; datas em ISO 8601. Limite de 100 requisições por minuto.
Available Tools
27 toolsrunrunit_assignment_playA
Start tracking work on a task (play). Pauses current task if assignee is already working on another. Always ensure that the task is in the Ongoing column (board_stage_id: 96356) before calling this tool.
| Name | Required | Description | Default |
|---|---|---|---|
| task_id | Yes | Task ID | |
| assignment_id | Yes | Assignment ID (from task.assignments[].id) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so description carries full burden. Discloses side effect: 'Pauses current task if assignee is already working on another.' Also mentions required board stage. Does not cover authorization, error scenarios, or return values, but the core behavioral impact is conveyed.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences: first states purpose, second adds precondition. No unnecessary words. Every sentence earns its place. Highly efficient.
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 no annotations and no output schema, the description covers purpose, side effect, and a critical precondition. It lacks error conditions and return value hints, but given the simplicity of the action (start tracking), it 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?
Schema coverage is 100% with clear descriptions: 'Task ID' and 'Assignment ID (from task.assignments[].id)'. The description adds extra context for assignment_id by specifying its source. This goes beyond the schema, adding value. Baseline 3, plus 1 for the added detail.
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?
Starts with 'Start tracking work on a task (play).' Clearly states verb (start tracking) and resource (work on a task). The 'play' term is explained as tracking. No sibling tools overlap, so distinct purpose 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?
Explicitly states a precondition: 'Always ensure that the task is in the Ongoing column (board_stage_id: 96356) before calling this tool.' This guides when the tool should be used. However, it does not mention when not to use it or provide alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
runrunit_comment_reactionB
Add a reaction (emoji) to a comment on Runrun.it.
| Name | Required | Description | Default |
|---|---|---|---|
| emoji | Yes | Emoji character (e.g. 👍) | |
| comment_id | Yes | Comment ID |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, and description only states the action without disclosing side effects, permissions, or reversibility; 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?
Single sentence of 10 words, directly stating the purpose with no waste.
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 information on return values, error handling, or prerequisites; insufficient for a mutation tool with no output schema or 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 coverage is 100%, so baseline is 3. Description adds no extra meaning beyond the schema's parameter 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?
Description clearly states the action 'Add a reaction (emoji) to a comment' with specific verb and resource, distinguishing it from sibling comment tools.
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; lacks context for selecting among comment-related or other tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
runrunit_create_commentA
Create a comment on a task in Runrun.it. Format: plain text and raw URLs only (no Markdown). Optional url_antes + url_depois: when both are provided, (1) capture visual evidence (skill registrar-evidencias), (2) upload images (e.g. Cloudinary), (3) append to text plain labels and image URLs (e.g. 'Antes: ' and 'Depois: '), (4) call this tool with the enriched text.
| Name | Required | Description | Default |
|---|---|---|---|
| text | Yes | Comment text (can be enriched with an evidence block when url_antes/url_depois are used) | |
| task_id | Yes | Task ID | |
| url_antes | No | Optional. URL of the page in the 'before' state; when provided with url_depois, agent should capture evidence and append it to text | |
| url_depois | No | Optional. URL of the page in the 'after' state; when provided with url_antes, agent should capture evidence and append it to text |
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 discloses the format constraints (no Markdown), the optional evidence capture workflow (capture, upload, append to text), and the required order of operations. It does not mention potential side effects (e.g., notifications) or return values, but for a creation tool, the key behaviors are well covered.
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 highly concise: two sentences, the first covering purpose and format, the second outlining the evidence capture steps in a clear, bullet-point-like structure. Every sentence serves a purpose with no 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?
The tool has 4 parameters, 2 required, no output schema. The description covers the main creation behavior, format constraints, and the complex optional workflow. It does not explain behavior when only one of url_antes/url_depois is provided, nor does it mention error handling or response format, but overall it is sufficiently complete for a creation 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?
Schema coverage is 100%, so baseline is 3. The description adds value by explaining the format of 'text' (plain text and raw URLs only, no Markdown) and the conditional behavior of 'url_antes' and 'url_depois' (when both are provided, trigger evidence capture). This goes beyond the 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 'Create a comment on a task in Runrun.it' with specific details about format (plain text and raw URLs only) and an optional evidence capture workflow using url_antes and url_depois. This distinguishes it from sibling tools like runrunit_get_comment, runrunit_update_comment, and runrunit_delete_comment by highlighting a unique behavior.
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 for when to use the tool, especially the multi-step evidence capture process when both url_antes and url_depois are provided. However, it does not explicitly state when not to use this tool versus alternatives like runrunit_update_comment or runrunit_create_external_comment, leaving some ambiguity.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
runrunit_create_external_commentA
For create a comment in the external/guest channel on a task in Runrun.it, use only text simple, without Markdown. Use this for comments shared with external clients (channel_name: guest).
| Name | Required | Description | Default |
|---|---|---|---|
| text | Yes | Comment text | |
| task_id | Yes | Task ID |
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 discloses the no-Markdown constraint, which adds value beyond the schema. However, it does not detail other behavioral aspects such as authentication requirements, rate limits, or side effects.
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 two sentences, directly stating the purpose and a key usage constraint. It is efficient and front-loaded with essential information, 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?
The tool is simple with two required parameters and no output schema. The description covers the purpose and text format but does not explain what the response will be (e.g., comment ID or success status). For a creation tool, this is a gap.
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%, but the description adds the meaningful constraint that the text must be simple and without Markdown, which the schema's 'Comment text' does not convey. The task_id parameter is not elaborated 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 tool creates a comment in the external/guest channel on a task, specifically for sharing with external clients. This distinguishes it from the sibling 'runrunit_create_comment' which likely handles internal comments.
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?
Explicitly states the tool is for comments shared with external clients and specifies the channel name. It also notes the constraint of using simple text without Markdown. However, it does not explicitly mention when not to use or provide alternatives like the internal comment tool.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
runrunit_create_taskA
Create a task on Runrun.it in board Ongoing (ID: 96356) in column Task by default and assignee from who is call the tool. Requires title (eg.: [project_name] - task_name) and type_id. Optional: description (rich description via Task Description API, appended to any existing text), project_id, assignments, desired_date, etc.
| Name | Required | Description | Default |
|---|---|---|---|
| title | Yes | Task title | |
| type_id | Yes | Task type ID | |
| on_going | No | Ongoing task | |
| tag_list | No | Comma-separated tags | |
| board_name | No | Board name | |
| project_id | No | Project ID | |
| assignments | No | Assignments | |
| description | No | Task description body (optional). Stored via PUT /tasks/:id/description after create; new text is appended after any content already on the task, never replacing it outright. | |
| desired_date | No | Desired delivery date (ISO) | |
| project_name | No | Project name | |
| board_stage_name | No | Board stage name | |
| desired_start_date | No | Desired start date (ISO) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden. It explains the default board, column, assignee behavior, and the special handling of the description parameter (appended via Task Description API, never replacing existing text). This adds useful context beyond basic creation, though it does not mention rate limits or auth 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?
The description is a single efficient paragraph that starts with the core purpose, then required fields, then optional ones. Every sentence adds value, and there is no wasted text.
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, the description omits return value details (e.g., whether the created task object is returned). However, it covers defaults, parameter behavior, and optional fields thoroughly. The 'etc.' at the end is slightly vague but acceptable.
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%, but the tool description adds significant meaning: it explains default values (board, column, assignee), the title format hint, and the appending behavior for description. This goes far beyond mere 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 verb 'Create' and resource 'task', specifies default board (Ongoing with ID 96356), default column (Task), and default assignee (the caller). This distinguishes it from sibling tools like runrunit_update_task and runrunit_delete_task.
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 lists required fields (title, type_id) and optional ones, giving an example title format. It implies the tool is for creating tasks in the specified default board/column, but does not explicitly say when not to use it or mention alternatives for other boards (though no other create task tool exists among siblings).
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
runrunit_create_workflowB
Create a workflow for a task (starts tracking eligibility). Task must not be closed, ongoing, or already have a workflow.
| Name | Required | Description | Default |
|---|---|---|---|
| task_id | Yes | Task ID |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description bears full responsibility for behavioral disclosure. It states the action (create) and a consequence ('starts tracking eligibility'), but gives no details on reversibility, error behavior, permissions, or side effects. For a mutation tool, this is minimal and insufficient for an agent to assess risks or outcomes.
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 action and a key condition. No redundant information, no filler. It is efficiently front-loaded with the verb and 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?
Despite low complexity (1 param, no output schema), the description omits crucial context: what the tool returns on success, possible error scenarios when conditions are not met, or any further behavioral details. Without an output schema, the description should at least indicate the result format or state after creation. The provided information is too sparse 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?
The sole parameter 'task_id' is fully described in the schema with description 'Task ID', so schema coverage is 100%. The description does not add new semantic details about the parameter beyond the schema, but the prerequisite conditions (task state) provide indirect context. Baseline 3 is appropriate as the schema does the heavy lifting.
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 creates a workflow for a task and mentions it starts tracking eligibility. The verb 'create' and resource 'workflow for a task' are specific. However, it does not distinguish this tool from sibling tools that also deal with task-related workflows or creation actions, missing explicit 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?
The description provides explicit conditions for use: 'Task must not be closed, ongoing, or already have a workflow.' This tells the agent when to use this tool versus not. However, it does not name alternative tools for cases where the task already has a workflow or is in an unsuitable state, so it lacks explicit cross-referencing.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
runrunit_delete_commentC
Delete a comment on Runrun.it.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | Comment ID |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description must disclose behavioral traits. It only says 'delete' but does not specify permanence, side effects (e.g., cascading deletion of replies), or authorization requirements. The behavioral impact is implied but not detailed.
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 short sentence, which is concise but sacrifices necessary detail. It is front-loaded but overly minimal; it could include more context 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?
For a simple delete tool with one parameter and no output schema, the description provides the bare minimum. It omits important context such as irreversibility, error handling, and what happens to associated data, making it incomplete for safe agent invocation.
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 100% coverage (the only parameter 'id' is described as 'Comment ID'). The tool description adds no extra meaning beyond the schema, so it meets the baseline expectation for a high-coverage 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 action (delete) and the resource (comment on Runrun.it). However, it does not distinguish it from sibling tools like runrunit_create_comment or runrunit_update_comment, though the verb 'delete' naturally differentiates it.
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 no guidance on when to use this tool versus alternatives, no prerequisites, and no caution about the irreversible nature of deletion. It simply states the action without any hints for effective use.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
runrunit_delete_taskB
Delete a task on Runrun.it.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | Task ID |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations; description fails to mention destructive nature, permission requirements, or side effects (e.g., cascading deletions). Only states 'Delete'.
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 fluff. Slightly too brief but not incomplete. 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?
Lacks behavioral context, return value, error handling, or security notes. For a simple delete tool with one param, minimally acceptable but leaves many gaps.
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% and parameter 'id' is described as 'Task ID' in schema. Description adds no extra meaning beyond the schema, meeting baseline for high 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?
Clearly states the verb 'Delete' and resource 'task on Runrun.it'. Distinct from siblings like create, update, get, 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?
Provides no guidance on when to use this tool versus alternatives, no prerequisites, no conditions for deletion.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
runrunit_discord_create_channelA
Create a text channel in the Discord server (guild) if not exists, use comparison with name 'Client 1' -> 'client-1' to avoid create duplicate channels. Use guild_id from env (DISCORD_GUILD_ID) or pass explicitly. One channel per client pattern.
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | Channel name (slug, e.g. client-name alaways for legible, ex: 'Client 1' -> 'client-1') | |
| topic | No | Channel topic (optional) | |
| guild_id | No | Discord guild (server) ID (optional if DISCORD_GUILD_ID set) | |
| parent_id | No | Category channel ID (optional) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Reveals that the tool avoids duplicate channels by comparing names and uses an environment variable for guild ID. Lacks information on return values, failure modes, or permissions needed, relying solely on the description since no annotations 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?
Description is concise with three clear sentences, front-loading the main action. No superfluous information, but could be slightly more streamlined by merging the last two sentences.
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?
Covers the creation logic reasonably well given no output schema, but omits behavior when channel already exists (whether it errors or returns existing). Also no mention of permissions or error handling, leaving gaps for effective invocation.
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?
Adds meaningful context beyond the schema: explains the naming convention (slug-like) and that guild_id can be omitted if DISCORD_GUILD_ID is set. Schema already covers parameters, but description enriches the 'name' parameter example and the 'one channel per client' pattern.
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 it creates a text channel in a Discord server, with idempotency condition. However, it does not differentiate itself from the sibling tool runrunit_discord_get_or_create_channel, which likely has similar functionality.
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?
Implies usage for creating a channel per client pattern, but does not explicitly state when to use this over alternatives like get_or_create_channel. No exclusion criteria mentioned.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
runrunit_discord_get_or_create_channelA
Get or create a Discord text channel for a Runrun.it client (1 channel per client, use client_name always avaliable transform to slug. ex: 'Client 1' -> 'client-1'). Returns channel_id and channel_name. Use before runrunit_discord_send_message to ensure the channel exists.
| Name | Required | Description | Default |
|---|---|---|---|
| guild_id | No | Discord guild ID (optional) | |
| client_id | No | Runrun.it client ID (or number as string) | |
| client_name | No | Client name (used for channel name if client_id not provided) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden. It discloses the get-or-create behavior and the channel naming convention (slug from client_name). However, it does not mention error handling, permission requirements, or rate limits, which would be nice but not critical for this simple 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 two sentences plus a brief parenthetical, front-loaded with the core purpose and usage. Every sentence is necessary and no fluff. It is efficiently structured.
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 explains what the tool returns (channel_id and channel_name) despite no output schema. It covers the main behavior. However, it does not clarify behavior when multiple parameters are provided or omitted (e.g., if both client_id and client_name are given). Slight gap, but overall complete for a utility 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?
Schema description coverage is 100%, so baseline is 3. The description adds value by instructing to transform client_name to a slug (e.g., 'Client 1' -> 'client-1'), providing guidance beyond the schema. This extra semantic detail justifies a 4.
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 'Get or create a Discord text channel for a Runrun.it client', specifying the verb and resource. It distinguishes from sibling tools like runrunit_discord_create_channel and runrunit_discord_send_message by indicating its idempotent behavior and intended use before sending messages.
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?
Explicitly instructs to 'Use before runrunit_discord_send_message to ensure the channel exists', providing clear when-to-use context relative to a sibling tool. Also implies when not to use it (e.g., for listing channels or creating a new distinct channel).
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
runrunit_discord_list_channelsA
List channels in the Discord server. Uses DISCORD_GUILD_ID or resolves from DISCORD_CHANNEL_ID.
| Name | Required | Description | Default |
|---|---|---|---|
| guild_id | No | Discord guild ID (optional if env set) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must cover behavioral traits. It mentions using environment variables (DISCORD_GUILD_ID or DISCORD_CHANNEL_ID) but omits details like rate limits, permissions, or error 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?
Two concise sentences with no fluff. Every word earns its place, providing essential information 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 is adequate for a simple tool with one optional parameter. However, it lacks details about the return format (e.g., list of channel objects) or any behavioral context beyond server identification.
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% and already describes the guild_id parameter as optional. The description adds value by mentioning resolution from DISCORD_CHANNEL_ID, but this is a minor addition 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 'List channels in the Discord server' with a specific verb and resource. It distinguishes from sibling tools like 'runrunit_discord_create_channel' or 'runrunit_discord_send_message' by focusing on listing.
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 when needing to list channels but provides no explicit guidance on when to use versus alternatives. No exclusions or when-not-to-use context is given.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
runrunit_discord_send_messageA
Send a message to a Discord channel. Use for execution history or notifications. Requires BOT_RUNRUNIT_REPORT and channel_id.
| Name | Required | Description | Default |
|---|---|---|---|
| content | Yes | Message text (max 2000 characters) | |
| task_id | No | Optional Runrun.it task ID for context | |
| channel_id | Yes | Discord channel ID | |
| project_id | No | Optional project ID for context |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description indicates a write operation but lacks details on idempotency, error handling, rate limits, or return behavior. With no annotations, more disclosure 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?
Three concise sentences, each adding value: purpose, usage, requirements. 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?
Covers purpose, use cases, and prerequisites but omits output/response behavior and behavioral details like failure handling. Adequate but not fully comprehensive.
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?
All parameters have descriptions in the schema (100% coverage); the tool description adds no extra semantics beyond stating requirements.
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 'Send a message to a Discord channel' with specific use cases and distinguishes from sibling Discord channel management tools.
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?
Provides explicit context ('execution history or notifications') and prerequisites ('requires BOT_RUNRUNIT_REPORT'), but does not explicitly mention when not to use or alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
runrunit_get_commentB
Get a single comment by ID from Runrun.it.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | Comment ID |
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 of behavioral disclosure. It only states it's a 'get' operation but does not mention potential errors (e.g., if ID not found), authentication needs, or rate limits.
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?
One efficiently worded sentence (10 words) front-loading the action and resource. 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?
For a simple get-by-ID tool, the description is adequate but minimal. It doesn't describe the return format or behavior when the comment does not exist. With no output schema, the agent would benefit from more detail.
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%—the schema itself documents the 'id' parameter. The description adds no extra meaning beyond 'by ID', which is already implied by the parameter description. 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?
The description clearly states the verb 'Get', the resource 'single comment', and the retrieval method 'by ID'. It distinguishes from sibling tools like create, update, delete, and list_task_comments.
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 explicit guidance on when to use this tool versus alternatives like runrunit_list_task_comments (which lists many comments). The description does not mention prerequisites 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.
runrunit_get_taskA
Get a single task by ID from Runrun.it.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | Task ID |
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 'Get a single task by ID' without disclosing behavioral traits such as authentication requirements, rate limits, error handling for missing IDs, or response structure. This is insufficient for a mutation-free read 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?
One sentence, no wasted words. Front-loaded with verb and object. Efficient.
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?
Tool is simple (one required param, no output schema). Description covers the essential action but omits return value information. Without an output schema, the agent has no hint about what data is returned.
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% and the description adds no additional meaning beyond the schema's 'Task ID' field. 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?
The description clearly states the verb 'Get' and the resource 'a single task by ID'. It distinguishes from sibling tools like runrunit_list_tasks (which returns multiple tasks) and runrunit_create/update/delete_task (which modify).
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 explicit guidance on when to use this tool vs alternatives. The description implies it's for retrieving a specific task by ID, but doesn't compare with runrunit_list_tasks or mention prerequisites.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
runrunit_install_cursor_skillsA
Copies bundled Cursor skills from the mcp-runrunit package (cursor-skills/) into the user's Cursor skills directory (~/.cursor/skills on any OS: uses os.homedir). Use to onboard teammates or sync team SKILL.md workflows. Prefer dry_run:true first to preview. Optional skill_names limits which folders to copy; target:global (default) or project with project_root for .cursor/skills in a repo; source_dir overrides auto-discovery of cursor-skills.
| Name | Required | Description | Default |
|---|---|---|---|
| target | No | global = ~/.cursor/skills (default). project = <project_root>/.cursor/skills — requires project_root when target is project. | |
| dry_run | No | If true, only lists what would be copied (no writes). Recommended before first sync. | |
| source_dir | No | Optional absolute path to a cursor-skills directory. If omitted, resolves next to the installed mcp-runrunit package. | |
| skill_names | No | Optional folder names under cursor-skills to copy (e.g. registrar-evidencias). If omitted, copies every subfolder that contains SKILL.md. | |
| project_root | No | Absolute path to the project root when target is project. Ignored when target is global. |
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 discloses that the tool copies files into ~/.cursor/skills, uses os.homedir, supports dry-run preview, and allows scoping to specific skills or project directories. Missing details on what happens on conflicts or error handling, but the core behaviors are transparent.
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 few sentences long, front-loaded with the main action. It efficiently conveys usage and key options. Could be slightly more structured (e.g., bullet points), but it's clear and avoids verbosity.
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 complexity (5 optional parameters, no output schema), the description covers the operation and parameter interactions well. However, it lacks information about return values (e.g., success message, counts) and potential side effects (e.g., overwriting existing files). This is a gap, lowering completeness to a 3.
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% (all 5 parameters have descriptions). The tool description adds contextual nuance: explaining the default for target ('global'), when project_root is needed, and that source_dir overrides auto-discovery. This goes beyond repeating schema information, so a 4 is warranted.
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 copies bundled Cursor skills to the user's Cursor skills directory, specifying the verb 'copies' and the resource. It distinguishes from sibling tools which are unrelated (comments, tasks, workflows, Discord, etc.), making the purpose 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?
The description provides explicit use cases: 'onboard teammates or sync team SKILL.md workflows' and recommends 'Prefer dry_run:true first to preview.' It also explains parameter usage (dry_run, skill_names, target, project_root, source_dir). However, it does not explicitly state when not to use this tool or mention alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
runrunit_list_board_stagesA
List board stages (Task, Ongoing, Manager Validation, etc.). Use board_id from a task. Returns stages with id and name — use with runrunit_move_task_stage when moving tasks by stage name.
| Name | Required | Description | Default |
|---|---|---|---|
| board_id | Yes | Board ID (from task.board_id) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so description carries full burden. Clearly describes the operation as listing stages and returning id and name. As a simple read operation, it is transparent enough; could mention read-only nature but implied by 'list'.
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, no fluff, front-loaded with the core action. Every word adds value. Ideal conciseness.
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?
Simple tool with one parameter and no output schema. Description covers purpose, parameter usage, and integration with sibling tool. Lacks mention of error conditions or default behavior, but sufficient for its 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?
Schema coverage is 100% with description for board_id. The description adds context by stating 'Use board_id from a task', reinforcing the schema's hint. Slightly exceeds baseline of 3 for full 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?
Clearly states verb 'List' and resource 'board stages', with examples of stages and explicit purpose to retrieve stages for moving tasks. Distinguishes itself by specifying usage with runrunit_move_task_stage.
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?
Provides context for when to use (get stages from task.board_id) and how to use the output (with runrunit_move_task_stage). Does not explicitly list when not to use or alternatives, but the guidance is clear and actionable.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
runrunit_list_projectsC
List all projects from Runrun.it. Optional filters: client_id, project_group_id, is_closed, is_active, page, limit.
| Name | Required | Description | Default |
|---|---|---|---|
| page | No | Page number (default 1) | |
| limit | No | Items per page (1-100) | |
| client_id | No | Filter by client ID | |
| is_active | No | Filter by active state | |
| is_closed | No | Filter by closed state | |
| project_group_id | No | Filter by project group ID |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries full burden. It mentions optional filters but fails to disclose read-only nature, response format, pagination defaults, or any side effects. The behavior is implied but not explicitly stated.
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 concise with one clear sentence and a list of optional filters. It is front-loaded with the main action. However, it lacks a brief note on what the response contains, which would improve structure without adding much length.
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 6 optional parameters, the description should explain default behavior (e.g., pagination default, what happens with no filters) and return value format. It fails to do so, making it incomplete for effective invocation.
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%, so baseline is 3. The description lists parameter names but adds no new meaning beyond what the schema already provides for each 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 'List all projects from Runrun.it' with a specific verb and resource. It distinguishes from sibling tools by focusing on projects, but does not explicitly differentiate from similar list tools like runrunit_list_tasks.
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. It does not mention prerequisites, when not to use, or any conditions for invocation.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
runrunit_list_subtasksA
Use for listing subtasks of a task from Runrun.it.
| Name | Required | Description | Default |
|---|---|---|---|
| task_id | Yes | Parent task ID |
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 fails to mention that the operation is read-only, any authentication needs, rate limits, or what the response includes. The name implies listing but lacks explicit 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?
The description is a single sentence that directly states the tool's purpose without any unnecessary words. It is front-loaded and efficient.
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 list tool with one required parameter and no output schema, the description adequately states what it does. However, it does not describe the return format (e.g., 'returns a list of subtask objects'), which would improve 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 100% (task_id with 'Parent task ID' description). The tool description adds no additional meaning beyond what the schema already provides, so 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?
The description clearly states the tool lists subtasks of a task, using specific verb 'listing' and resource 'subtasks of a task'. This distinguishes it from sibling tools like runrunit_list_tasks which list tasks directly.
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 a clear context for use (listing subtasks) but does not specify when not to use it or mention alternatives among siblings. No exclusions or comparisons are given.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
runrunit_list_task_commentsB
List all comments on a task in Runrun.it.
| Name | Required | Description | Default |
|---|---|---|---|
| task_id | Yes | Task ID |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries full burden but only states the basic function. It does not disclose any behavioral traits such as pagination, sorting, ordering, or side effects (e.g., whether it's read-only).
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 that fits the necessary information. It is concise without being overly short, though it could include slightly more detail without losing efficiency.
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 list tool with one required parameter and no output schema, the description is moderately complete. It does not mention that the output is an array of comments or provide any expected structure, but the simplicity somewhat mitigates this gap.
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% (one parameter with a basic description 'Task ID'). The description does not add any additional meaning beyond what the schema provides, resulting in a 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 'List' and the resource 'comments on a task' within 'Runrun.it'. It is specific and distinguishes this tool from siblings that get, create, update, or delete individual comments.
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 no guidance on when to use this tool versus alternatives like runrunit_get_comment for a specific comment or runrunit_create_comment for adding. No context on prerequisites or scenarios is given.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
runrunit_list_task_filtersA
List all task filters available to the current user. Use to find filter_id for 'Minhas partes abertas' or other filters.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, description should disclose behavior. It lists available filters for current user but lacks details on rate limits, auth, or whether it's read-only.
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, no fluff. First states purpose, second provides usage guidance. Every sentence earns its place.
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 zero-param tool with no output schema, this description is fairly complete. Could specify output format but covers core purpose and 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?
No parameters exist, so schema coverage is 100%. Description adequately handles this by omitting param info. Baseline for 0 params is 4.
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 verb 'List', resource 'task filters', and scope 'available to the current user'. The use case for finding filter_id differentiates it from sibling list tools.
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?
Explicitly identifies when to use: to find filter_id for specific filters. No alternative or exclusion, but sufficient for this tool.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
runrunit_list_tasksB
List tasks from Runrun.it. Optional filters: ids, user_id, follower_id, responsible_id, assignee_id, filter_id, board_stage_id, project_id, is_closed, is_working_on, sort, sort_dir, page, limit.
| Name | Required | Description | Default |
|---|---|---|---|
| ids | No | Comma-separated task IDs | |
| page | No | Page number (default 1) | |
| sort | No | Sort field (e.g. close_date, queue_position) | |
| limit | No | Items per page (1-100) | |
| user_id | No | Creator user ID | |
| sort_dir | No | Sort direction | |
| filter_id | No | ID of a task filter (e.g. 'Minhas partes abertas') | |
| is_closed | No | Filter by delivered tasks | |
| project_id | No | Project ID | |
| assignee_id | No | Assignee/executor principal user ID | |
| follower_id | No | Follower user ID | |
| is_working_on | No | Filter by in progress | |
| board_stage_id | No | Filter by board stage (e.g. Ongoing) | |
| responsible_id | No | Responsible/assignee user ID (e.g. for 'Minhas partes abertas') |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the burden. It mentions listing with optional filters but does not disclose pagination behavior (e.g., default page size, max limit), or how filters combine (AND vs OR). 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?
The description is a single concise sentence that front-loads the action and lists all filters. No wasted words; every element is 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 14 optional parameters, no output schema, and no annotations, the description is incomplete. It does not explain return format, pagination defaults, or how filters interact. More context is needed for effective use.
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 the schema already describes each parameter. The description lists parameter names but adds no new semantics beyond the schema. 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?
The description clearly states the tool lists tasks from Runrun.it and enumerates all optional filters, making its purpose distinct from sibling tools like runrunit_get_task (single task) or runrunit_list_projects.
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 when a single task is needed (get_task) or when subtasks are required (list_subtasks). It also lacks context on typical use cases.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
runrunit_move_task_stageA
Moves a task to a board stage (column). Tasks must only advance; backward move is allowed only to 'Task' or 'Blocked Task' (e.g. impediment or not finished). Use board_stage_name or board_stage_id. For stages that require 'Link da branch', fill it first with runrunit_update_task.
| Name | Required | Description | Default |
|---|---|---|---|
| task_id | Yes | Task ID to move | |
| board_stage_id | No | Stage ID (from runrunit_list_board_stages) | |
| board_stage_name | No | Stage name (e.g. 'Task', 'Ongoing', 'Manager Validation', 'Ready for production'). Partial match, case-insensitive. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so description carries full burden. Discloses movement restrictions and a prerequisite. Lacks details on permissions, error handling, or rate limits, but sufficiently covers behavior for a move 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?
Two sentences, no unnecessary words. Front-loaded with main action, then constraints and tips. Highly efficient.
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?
No output schema, but description covers purpose, usage guidelines, parameter semantics, and behavioral constraints. Complete for a simple move tool with no nested objects.
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 100%, baseline 3. Description adds value by explaining board_stage_name partial match and case-insensitivity, and linking board_stage_id to runrunit_list_board_stages. Doesn't clarify behavior if both params 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?
Clearly states the tool moves a task to a board stage (column). Specifies movement constraints (advance only, backward only to 'Task' or 'Blocked Task'), which distinguishes it from other task-related tools like runrunit_update_task.
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?
Provides explicit when-to-use and constraints: tasks must only advance, backward allowed only to specific stages. Also gives a prerequisite tip for stages requiring 'Link da branch', directing to runrunit_update_task.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
runrunit_project_detect_platformA
Identifies the project platform based on task tags in Runrun.it (Node, Python, Ruby, Go, Rust, etc.) and suggests the command to upload the development environment. The platform is defined by task tags (tags_data/tag_list), not by repository files.
| Name | Required | Description | Default |
|---|---|---|---|
| task_id | Yes | ID da task no Runrun.it. As tags dessa task definem a plataforma (ex.: node, react, python). |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so description carries full burden. It discloses that the tool reads tags_data/tag_list, not repository files, and implies read-only behavior. Could state 'no side effects' explicitly but sufficient.
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, no wasted words. Clearly front-loaded with purpose and examples.
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?
Low complexity with one parameter. Description covers purpose, data source, and output suggestion. Missing details on output format or error handling, but adequate for a simple detection 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?
Schema already has 100% coverage with parameter description. Tool description adds context: it suggests upload command and emphasizes tags as source, adding meaning beyond 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?
Description clearly states the tool identifies project platform based on task tags, listing examples. It is specific and distinguishes from sibling tools that handle comments, tasks, workflows, 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?
Description explains when to use (when task tags define platform) and explicitly says it does not use repository files. However, no explicit when-not-to-use or alternative tool references.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
runrunit_suggest_devs_with_free_queueA
Sugere desenvolvedores com fila mais livre com base em tarefas na coluna Task, considerando estimativas e filtros opcionais (time, projeto, tags).
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Número máximo de devs sugeridos (1 a 10, padrão 3). | |
| team_id | No | ID de time para filtrar desenvolvedores. | |
| board_id | No | ID do board Kanban onde está a coluna Task. Necessário se task_stage_ids não for informado. | |
| squad_id | No | ID de squad para filtrar desenvolvedores. | |
| tribe_id | No | ID de tribo para filtrar desenvolvedores. | |
| project_id | No | ID de projeto para filtrar tarefas. | |
| project_tag | No | Tag de projeto para filtrar tarefas. | |
| developer_ids | No | Lista explícita de IDs de desenvolvedores candidatos (Runrun.it). | |
| load_strategy | No | Estratégia de cálculo de carga: tasks_and_time (padrão), only_tasks ou only_time. | |
| task_stage_ids | No | IDs de estágios/colunas que representam a coluna Task. Se não informado, tenta identificar por convenção de nome no board informado. | |
| only_developers | No | Se verdadeiro, considera apenas desenvolvedores; exclui Gestor, Social, Inovação, etc. (padrão true). | |
| only_active_devs | No | Se verdadeiro, tenta considerar apenas desenvolvedores ativos (por exemplo, não de férias). | |
| include_zero_tasks | No | Se verdadeiro, inclui devs elegíveis sem tarefas na coluna Task (padrão true). |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description must fully disclose behavior. It explains the tool suggests developers based on tasks and estimates, but omits details like how 'free queue' is calculated, whether it modifies data, or required permissions. This is adequate but lacks depth.
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 that efficiently communicates the core action and context. No filler or redundant words; the sentence is well-structured and front-loaded with the main 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?
The description lacks information about the output format (e.g., list of developers with ranking or details) and does not explain the computation logic. With no output schema, this gap significantly reduces completeness. Additionally, the complexity of 13 parameters is not addressed beyond the 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 description coverage is 100%, so baseline is 3. The description adds minimal semantics beyond the schema, simply repeating the concept of filters. The parameter descriptions in the schema are already detailed (e.g., load_strategy, task_stage_ids), so the tool's description does not significantly enhance understanding.
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 purpose: suggesting developers with the freest queue based on tasks in the Task column, considering estimates and optional filters. The verb 'suggests' and specific resource 'developers with freest queue' make it distinct from siblings, none of which offer similar suggestion functionality.
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 context for when to use the tool (when needing to suggest developers based on task queue), includes mention of optional filters, but does not explicitly state when not to use or provide alternatives. Given no sibling tool offers the same capability, this omission is acceptable.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
runrunit_update_commentB
Update a comment's text on Runrun.it.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | Comment ID | |
| text | Yes | New comment text |
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 says 'update' which implies mutation but does not disclose side effects, permissions, or constraints (e.g., can only update own comments, whether update is destructive).
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 concise, though the brevity comes at the cost of missing behavioral guidance.
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 no output schema, the description is passable but lacks information on return values, error conditions, or prerequisites (e.g., comment must exist).
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 the schema already describes the two parameters (id and text). The description adds no additional meaning beyond what is in 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 uses a specific verb 'Update' and resource 'comment's text' and names the platform 'Runrun.it'. It clearly distinguishes this tool from siblings like create, delete, get, and reaction.
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. For example, it does not mention that this is for modifying existing comments, while creating or reacting are separate tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
runrunit_update_taskA
Update a task on Runrun.it. Pass task ID and an object with fields to update (e.g. title, desired_date). For the PR/branch link use link_da_branch (URL); it is stored in the custom field 'Link da branch' (custom_32). To move a task between columns (Task, Ongoing, Manager Validation), use runrunit_move_task_stage.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | Task ID | |
| task | Yes | Fields to update (e.g. { title: 'New title' }, { link_da_branch: 'https://github.com/.../pull/21' }). link_da_branch maps to custom field Link da branch. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries full responsibility. It discloses the mapping of 'link_da_branch' to a custom field and explains that it expects a URL. While it doesn't detail all side effects (e.g., overwrite vs. merge), it gives enough behavioral context 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?
Two sentences with no redundancy. The first sentence states the purpose and required parameters; the second adds a crucial note about a special field and directs to a sibling tool. Every sentence earns its place.
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 parameter count (2, one nested), lack of output schema, and no annotations, the description covers the essentials: what the tool does, what fields can be updated (with examples), and how to handle a non-obvious custom field. It also addresses an ambiguous scenario (stage moves) by referencing the correct sibling 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?
Schema coverage is 100% (both parameters documented). The description adds value beyond the schema by explaining that 'link_da_branch' maps to custom field 'custom_32', providing an example URL, and clarifying that the task object should contain fields to update. This is more informative than the schema 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 clearly states 'Update a task on Runrun.it' with a specific verb and resource. It distinguishes from the sibling tool 'runrunit_move_task_stage' by explicitly mentioning that moving between columns should use that tool instead.
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 explicitly indicates when to use this tool (update task fields) and when not to (moving stages), naming the alternative tool. This provides clear guidance for an agent.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
runrunit_upload_image_cloudinaryA
Faz upload de uma imagem para a Cloudinary e retorna a URL pública (secure_url). Usa as variáveis CLOUDINARY_* já configuradas no MCP (ex.: em mcp.json). Use para screenshots, evidências, PRs e comentários.
| Name | Required | Description | Default |
|---|---|---|---|
| file_path | Yes | Caminho absoluto ou relativo do arquivo de imagem no disco (ex.: path retornado por browser_take_screenshot). | |
| public_id | No | ID público opcional na Cloudinary (ex.: pr-evidencia-desktop, docs-screenshot-1). |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must carry the behavioral burden. It discloses that uploads go to Cloudinary and return a secure_url, and mentions env vars are already configured. However, it omits details about whether overwriting occurs, allowed image formats, error handling, or any destructive potential. The description is adequate but could be more transparent.
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 two sentences, perfectly front-loaded: first sentence defines purpose and output, second provides usage guidance. 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?
Given no output schema, the description hints at return value (secure_url). It covers the 2 parameters (1 required) with 100% schema coverage. It could mention file size limits or format restrictions, but for a straightforward upload tool it is sufficient.
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 baseline is 3. The description adds useful context: for file_path it gives examples of absolute/relative paths and references browser_take_screenshot; for public_id it provides pattern examples. This enhances understanding beyond the schema 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 clearly states the tool uploads an image to Cloudinary and returns a public URL. It lists specific use cases (screenshots, evidence, PRs, comments), and no sibling tools perform similar uploads, so differentiation 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?
The description explicitly tells when to use the tool (for screenshots, evidence, etc.) and mentions pre-configured environment variables. It does not state when not to use it, but there are no alternative upload tools among siblings, so it's clear.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
TDQS
Each tool has a clearly distinct purpose: comments, tasks, projects, workflows, assignments, Discord channels, image upload, etc. Even similar tools (e.g., create_comment vs create_external_comment) are differentiated by channel type. No overlapping or ambiguous tools.
All tools start with 'runrunit_' and mostly follow verb_noun pattern (e.g., get_comment, list_tasks). However, 'assignment_play' and 'suggest_devs_with_free_queue' deviate from the pattern, and 'project_detect_platform' places verb after noun. Still, the majority are consistent.
27 tools is moderately high, but the server covers multiple domains (task management, comments, Discord integration, Cloudinary upload, Cursor skills). While each tool has its place, the breadth feels slightly excessive and could be trimmed.
Core task CRUD and comment lifecycle are covered, along with Discord and image upload. However, missing project update/delete, assignment management beyond play, and time tracking leave notable gaps for a complete Runrun.it integration.
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
Model Context Protocol server for todo.vu task management and time tracking.
Official Todoist MCP server for AI assistants to manage tasks, projects, and workflows.
Share one project context across ChatGPT, Claude, Telegram and any MCP client.
Manage tasks, Focus Zone, notes, projects, and task history from compatible AI assistants.
Related MCP Servers
- FlicenseAqualityDmaintenanceEnables task management and Kanban board tracking using Google Sheets as a database via the Model Context Protocol. It supports advanced filtering, batch operations, and full lifecycle management of project tasks within a spreadsheet.6
- AlicenseNot gradedqualityCmaintenanceEnables AI agents to interact with tasks, spaces, lists, and folders across multiple ClickUp workspaces via the Model Context Protocol.601MIT
- AlicenseNot gradedqualityFmaintenanceEnables language models to manage Todoist tasks, projects, sections, labels, comments, and collaborators through natural language via the Model Context Protocol.MIT
- AlicenseBqualityCmaintenanceEnables natural language management of Motion tasks, projects, schedules, and more via the Model Context Protocol, integrating with LLMs like Claude and ChatGPT.10Apache 2.0
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/zNetinho/mcp-runrunit'
If you have feedback or need assistance with the MCP directory API, please join our Discord server