@iadev/mcp-server
Allows Windsurf (by Codeium) to interact with the project database for table management, SQL execution, and user administration.
Integrates with VS Code GitHub Copilot to enable AI-powered database operations directly from the editor.
Click on "Deploy 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., "@@iadev/mcp-serverlist tables in my project"
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.
@iadev/mcp-server
MCP Server para iadev.dev — conecte qualquer IA ao seu projeto.
Permite que VS Code Copilot, Cursor, Windsurf, Claude Desktop e qualquer plataforma compatível com MCP operem diretamente no seu banco — tabelas, SQL, usuários — sem sair do editor.
Instalação rápida
Não precisa instalar globalmente. Use npx direto:
npx -y github:iadevhub/iadev-mcp-serverRelated MCP server: Database MCP Server
Configuração
VS Code — GitHub Copilot
Criar arquivo .vscode/mcp.json na raiz do projeto:
{
"servers": {
"iadev": {
"command": "npx",
"args": ["-y", "github:iadevhub/iadev-mcp-server"],
"env": {
"IADEV_URL": "https://iadev.dev",
"IADEV_PROJECT": "SEU_SLUG",
"IADEV_API_KEY": "SUA_API_KEY"
}
}
}
}Cursor
Criar arquivo .cursor/mcp.json:
{
"mcpServers": {
"iadev": {
"command": "npx",
"args": ["-y", "github:iadevhub/iadev-mcp-server"],
"env": {
"IADEV_URL": "https://iadev.dev",
"IADEV_PROJECT": "SEU_SLUG",
"IADEV_API_KEY": "SUA_API_KEY"
}
}
}
}Windsurf
Abrir Settings → MCP ou criar ~/.codeium/windsurf/mcp_config.json:
{
"mcpServers": {
"iadev": {
"command": "npx",
"args": ["-y", "github:iadevhub/iadev-mcp-server"],
"env": {
"IADEV_URL": "https://iadev.dev",
"IADEV_PROJECT": "SEU_SLUG",
"IADEV_API_KEY": "SUA_API_KEY"
}
}
}
}Claude Desktop
Editar claude_desktop_config.json (menu Settings → Developer):
{
"mcpServers": {
"iadev": {
"command": "npx",
"args": ["-y", "github:iadevhub/iadev-mcp-server"],
"env": {
"IADEV_URL": "https://iadev.dev",
"IADEV_PROJECT": "SEU_SLUG",
"IADEV_API_KEY": "SUA_API_KEY"
}
}
}
}Variáveis de ambiente
Variável | Obrigatória | Descrição |
| Sim | URL da API (padrão: |
| Sim | Slug do projeto |
| Recomendada | API Key para auto-autenticação |
Tools disponíveis (15)
Tool | Descrição |
| Autenticar como admin do projeto |
| Trocar API Key por JWT técnico |
| Informações do projeto |
| Listar tabelas do schema |
| Listar colunas de uma tabela |
| Buscar dados paginados |
| Executar SQL (DDL/DML) |
| Listar usuários do projeto |
| Criar usuário |
| Atualizar usuário |
| Criar novo projeto IAdev |
| Listar meus projetos |
| Provisionar com infra (super_admin) |
| Conectar repo + deploy |
| Status do deployment |
Segurança
A IADEV_API_KEY é usada para auto-autenticação. O token gerado tem papel service e acessa apenas o schema do seu projeto. Nunca compartilhe a API Key em repositórios públicos — use variáveis de ambiente ou .env.
Licença
MIT
Available Tools
15 toolscreate_projectA
Criar um novo projeto IAdev (banco + schema + API key). Admin ou super_admin.
| Name | Required | Description | Default |
|---|---|---|---|
| nome | Yes | Nome do projeto |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full behavioral burden. It discloses that the call also creates a database, schema, and API key beyond the obvious project record, and that it is restricted to admin/super_admin – useful non-obvious context. However, it says nothing about reversibility, side-effect cleanup, failure modes, or whether the API key is returned in the response.
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 compact sentence front-loads the action and lists side-effects in parentheses followed by the authorization note. There is no filler, though the parenthetical bundle could be clearer about what each item means.
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 multi-resource creation tool with no annotations and no output schema, the description covers the core action and access restriction but omits return values and key behavioral details an agent would want. Adequate but with clear 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?
'nome' is the sole parameter and its schema description ('Nome do projeto') covers it at 100%. The description adds no syntax, constraints, or examples beyond the schema, so the baseline of 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb 'Criar' (Create) and resource 'novo projeto IAdev', and names the atomic side-effects it bundles: 'banco + schema + API key'. That is more precise than a generic create and distinguishes it from siblings like provision_project or publish_project.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It states an authorization precondition ('Admin ou super_admin'), but gives no when-to-use guidance versus alternatives. There is no telling whether an agent should call create_project versus provision_project, or whether this is the first step in a sequence. Usage is only implied.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_userC
Criar um novo usuário no projeto.
| Name | Required | Description | Default |
|---|---|---|---|
| nome | Yes | Nome completo | |
| Yes | |||
| senha | Yes | Senha | |
| perfil | No | Perfil: admin, editor, viewer (default: admin) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full behavioral burden and discloses almost nothing. It does not say whether an admin role is required, whether the email must be unique, what happens on conflict, or whether the created user is returned or invited by email. For a mutation tool with zero annotation coverage this is a substantial gap.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single short sentence, front-loaded with the verb and resource and free of filler. It is efficient, though the terseness comes partly from under-specification rather than disciplined editing.
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 create/mutation tool with no annotations and no output schema, an agent needs to know permission requirements, uniqueness/conflict behavior, and what the call returns. None of that is present, so the definition is not complete enough to invoke confidently in a real project.
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%, including the enum-like values for "perfil" (admin, editor, viewer) and its default, so the schema already documents all four parameters. The description adds no parameter meaning beyond that, which is the baseline-3 case when 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 states a specific verb and resource ("Criar um novo usuário" — create a new user) and scopes it to a project, so the core action is unambiguous. It does not, however, distinguish this from siblings like update_user or list_users, which share the same user resource.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no guidance on when to use this tool versus update_user, list_users, or any provisioning alternative, and no stated prerequisites (e.g. required role to create users). Usage must be inferred entirely from the name.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
deploy_statusB
Consultar status do deployment. Admin (dono) ou super_admin.
| Name | Required | Description | Default |
|---|---|---|---|
| slug | Yes | Slug do projeto | |
| deploymentId | No | ID específico do deployment (busca o último se omitido) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It does disclose the authorization requirement (owner-admin or super_admin), which is genuine behavioral context beyond the schema, but says nothing about read-only semantics, error behavior when unauthorized, or what a missing deployment returns.
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 short fragments with the action front-loaded and no wasted words. It is efficient, though the telegraphic style leaves the permission clause slightly ambiguous in phrasing.
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 two-parameter, fully documented read tool with no output schema, the description covers purpose and access control adequately. It is missing guidance on alternatives and any note on what status information is returned, leaving it minimally viable rather than 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 description coverage is 100%, and both parameters are documented in the schema, including the fallback behavior for an omitted deploymentId. The description adds no parameter meaning beyond that, so the baseline of 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('Consultar status do deployment'), so an agent immediately knows this is a read of deployment state. It does not need to distinguish itself from the listed siblings, none of which overlap with deployment status, but it also offers no 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 names a precondition — the caller must be the owning admin or a super_admin — which is useful gating information. However, it gives no guidance on when to prefer this tool over another, nor any exclusions, leaving usage largely implied.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
execute_sqlB
Executar SQL no schema do projeto. Use com cuidado — suporta DDL e DML.
| Name | Required | Description | Default |
|---|---|---|---|
| sql | Yes | Comando SQL a executar |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It does add genuinely important context by flagging DDL/DML support and warning caution, implying destructive potential. But it omits permissions required, statement atomicity, reversibility, multi-statement behavior, and result 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?
Two short sentences, front-loaded with purpose then risk note. Slightly terse on the caution clause, but there is no padding or repetition.
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 an arbitrary SQL execution surface that supports schema-altering DDL and data-modifying DML, the description is thin: no annotations, no output schema, and no statement about results, permissions, or side effects. An agent could invoke it without knowing the blast radius.
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?
Only one parameter with 100% schema description coverage, so the schema already defines it. The description adds no syntax, dialect, or statement-batching detail beyond the schema's 'Comando SQL a executar'. Baseline 3 applies when the schema does the work.
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?
States a specific verb+resource ('Executar SQL') and scopes it to the project schema. The DDL/DML note distinguishes it from read-only siblings like query_data and list_tables, though it never names those siblings explicitly.
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?
'Use com cuidado' is a caution rather than routing guidance. The DDL/DML mention implies this is the tool for writes and schema changes, but no when-to-use/when-not rule or alternative (e.g. query_data for reads) is stated.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_columnsC
Listar colunas de uma tabela específica.
| Name | Required | Description | Default |
|---|---|---|---|
| table | Yes | Nome da tabela |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full behavioral burden. It implies a read operation but says nothing about authentication requirements, whether the table must exist, error behavior for unknown tables, or the shape of the returned column metadata.
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, front-loaded sentence with no waste. It is appropriately sized for a one-parameter list tool, though it is terse enough to omit useful framing.
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 one-parameter read tool, the description is minimally viable. With no annotations and no output schema, it should at least indicate what the returned column data looks like, which it does not.
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%, with the single 'table' parameter already documented as 'Nome da tabela'. The description adds only that the table must be specific, which is baseline value when the schema does the documentation.
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?
States a specific verb and resource ('Listar colunas de uma tabela específica'), so the agent knows this returns a table's column list. It does not, however, differentiate itself from the sibling list_tables or explain the relationship to query_data, leaving the agent to infer the boundary.
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?
There is no explicit when-to-use or when-not-to-use guidance. The agent must infer that this is for schema inspection of a single table rather than listing tables or querying data, which is not stated.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_project_infoB
Informações do projeto atual (nome, slug, plano, status).
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden, but it does add that the tool targets the 'current project' — implying session/context dependency rather than an ID argument. It still omits auth requirements, error behavior when no project is active, 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?
A single short sentence with the resource front-loaded and no waste. It is appropriately sized, though the parenthetical field list is the only informative addition.
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-parameter, no-output-schema tool, the description covers the essentials of what is returned. However, with no annotations and no output schema, it could do more to explain session dependency and failure behavior when no current project is set.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
There are zero parameters, so the baseline of 4 applies. The description usefully enumerates the conceptual fields returned (name, slug, plan, status), though these are outputs rather than parameters.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States clearly that it returns information about the current project and enumerates the fields (name, slug, plan, status). It distinguishes itself from siblings like list_my_projects or create_project by scoping to the current project, though the retrieval verb is implied rather than stated.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
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 such as list_my_projects, get_service_token, or other project tools. The 'current project' scope hints at session-based usage but there are no explicit conditions or exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_service_tokenB
Trocar API Key por um JWT técnico. Usa IADEV_API_KEY se apiKey não for informada.
| Name | Required | Description | Default |
|---|---|---|---|
| apiKey | No | API Key do projeto (opcional se IADEV_API_KEY configurada) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden. It discloses the env-var fallback behavior, which is genuinely useful, but says nothing about token lifetime, required permissions, or whether the call has side effects on the project.
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 short sentences with the action stated first and the parameter fallback second; nothing is padded. It is efficient, though extremely terse for an auth tool.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a single-parameter tool with no output schema this covers the basics, but it omits what the returned JWT is valid for and how long it lasts, which an agent needs to use the result correctly.
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 single parameter's description already states it is optional when IADEV_API_KEY is set. The description's fallback note largely duplicates that, adding no format or sourcing detail 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?
States a concrete verb+resource: exchanging an API Key for a technical JWT. It is understandable on its own, but it does not distinguish itself from the sibling 'login' tool, which plausibly serves a similar authentication purpose.
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?
It gives one conditional rule (fall back to IADEV_API_KEY when apiKey is omitted), which is useful usage context. However, it never states when to call this instead of 'login' or what preconditions apply, so selection among siblings is left to inference.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_my_projectsC
Listar meus projetos IAdev.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full behavioral burden, yet it discloses nothing about authentication requirements, pagination, ordering, or what a 'project' record contains. For a list tool in a project-management sibling set, this is a substantial gap.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single short sentence with no wasted words and the resource front-loaded. It is efficient, though its brevity reflects missing content rather than disciplined editing.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no annotations and no output schema, the description is the only source of information, and it omits return shape, default ordering, and relationship to get_project_info. It is too thin to let an agent call the tool with confidence.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool takes zero parameters, so the schema baseline of 4 applies. There are no parameter semantics for the description to clarify.
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 names a verb ('Listar') and a resource ('meus projetos IAdev'), so the basic purpose is inferable. However, it essentially restates the tool name 'list_my_projects' and adds no differentiation from siblings such as get_project_info or create_project, leaving scope and boundary unclear.
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?
There is no when-to-use guidance, no exclusion criteria, and no mention of alternative tools like get_project_info for details on a single project. The agent must infer usage entirely from the name.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_tablesB
Listar todas as tabelas do schema do projeto.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It does not disclose whether this is a read-only operation, what permissions are required, or whether it returns only table names or metadata. The minimal statement leaves most behavioral traits unstated.
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, front-loaded sentence with no wasted words. It is appropriately sized for a parameterless listing tool.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a parameterless read tool without annotations or output schema, the description covers the basic purpose but omits behavioral context such as read-only nature and return shape. It is minimally adequate given the low complexity.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
There are zero parameters and schema coverage is 100%, which per the guidelines sets a baseline of 4. The description appropriately does not invent parameter details.
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?
States a specific verb (Listar) and resource (tabelas do schema do projeto), which is clear enough to distinguish from siblings like get_columns or query_data. The scope is slightly ambiguous as to which project's schema, but the core action is unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this versus alternatives such as get_columns or query_data. The agent must infer from the name that this lists tables only, with no stated preconditions or contexts.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_usersB
Listar usuários do projeto.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full behavioral burden, yet it says nothing about read-only safety, permissions/scope required, pagination, result size limits, or whether the current user's project is assumed. It communicates only the bare 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?
A single short, front-loaded sentence with no waste. Its brevity is appropriate for a trivial zero-parameter call, though it leaves no room for the behavioral detail the tool lacks elsewhere.
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 zero-parameter read tool this is minimally adequate, but with no output schema the agent gets no sense of the returned user shape, and project scoping/ambiguity versus list_my_projects remains unaddressed.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool takes zero parameters, so the baseline is 4; there is nothing for the description to clarify beyond the implicit project scope, which it does mention.
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 names a specific verb ('Listar') and resource ('usuários') and scopes it to a project, so the operation is clear. It does not differentiate from sibling list tools such as list_my_projects, nor does it say whether 'do projeto' refers to the current token's project or an implicit one.
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 versus alternatives like list_my_projects or get_project_info, and no prerequisites or context for when the listing is appropriate. Usage must be inferred.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
loginB
Autenticar como admin do projeto. Retorna accessToken e refreshToken.
| Name | Required | Description | Default |
|---|---|---|---|
| Yes | Email do admin | ||
| senha | Yes | Senha do admin | |
| tenantSlug | No | Slug do projeto (usa IADEV_PROJECT se omitido) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full behavioral burden. It usefully discloses the return payload (accessToken and refreshToken), which matters because there is no output schema, but it says nothing about authentication failure behavior, token lifetime, rate limiting, or whether tokens are cached/revoked.
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 short sentences, zero filler, with the core action front-loaded and the return values following. Nothing is wasted.
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 three-parameter login with full schema coverage, the description covers the essential pieces: what it does and what it returns, compensating for the absent output schema. Missing only secondary details like token lifetime or prerequisite ordering for dependent tools.
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%: email, senha, and tenantSlug are all documented in the schema, including the IADEV_PROJECT default for tenantSlug. The description adds nothing beyond the schema, so the baseline of 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and scope: authenticate as the project admin, and names the artifacts returned (accessToken, refreshToken). It implicitly separates itself from the sibling get_service_token by concerning admin authentication, but never names that alternative explicitly.
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 statement of when to use this over get_service_token, nor of any prerequisite or ordering (e.g., that other tools require the returned token). The usage is only inferable from the tool name 'login'.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
provision_projectB
Provisionar projeto completo com infraestrutura. Requer super_admin.
| Name | Required | Description | Default |
|---|---|---|---|
| nome | Yes | Nome do projeto | |
| slug | Yes | Slug único (lowercase, hífens) | |
| adminNome | Yes | Nome do admin inicial | |
| adminEmail | Yes | Email do admin inicial | |
| adminSenha | Yes | Senha do admin inicial |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It does disclose the super_admin authorization requirement, which is valuable, but says nothing about side effects, whether provisioning also creates the initial admin credentials passed in, or reversibility.
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 short sentences with the purpose and the key prerequisite front-loaded; nothing is wasted. It is efficient though arguably too terse for a multi-parameter mutating tool.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a heavy provisioning operation with five required parameters, no annotations, and no output schema, the description omits what infrastructure is created, what the initial admin is used for, and any side effects. Beyond the super_admin note, an agent is left with significant unknowns.
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 every parameter (nome, slug, adminNome, adminEmail, adminSenha) is already documented in the schema. The description adds no additional meaning about these fields, so the baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource: 'Provisionar projeto completo com infraestrutura' tells the agent this creates a full project including its infrastructure. However, it does not distinguish itself from the sibling 'create_project', leaving the agent to guess which one to pick.
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 prerequisite 'Requer super_admin' gives a useful precondition for use, but there is no guidance on when to choose this over 'create_project' or what happens after provisioning. Usage is implied rather than explained.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
publish_projectB
Conectar repositório GitHub e iniciar deploy. Admin (dono) ou super_admin.
| Name | Required | Description | Default |
|---|---|---|---|
| slug | Yes | Slug do projeto | |
| branch | No | Branch (default: main) | |
| githubRepo | Yes | Repositório GitHub (ex: usuario/repo) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full behavioral burden. It usefully discloses the permission model (project owner/admin or super_admin), which is real context beyond the schema, but says nothing about deploy side effects, async behavior, whether an existing deployment is replaced, or failure modes for a mutating 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 very short sentences with the action front-loaded and no filler. It is efficient, though its brevity is partly under-specification rather than pure economy.
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 three-parameter mutation with no output schema and no annotations, the description covers the what and the who but omits the deploy semantics an agent would want (what state the project enters, what happens on re-publish, error conditions). Adequate but with clear 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 description coverage is 100%, so slug, githubRepo, and branch (with its default of main) are already documented in the schema. The description adds no format or constraint detail beyond that, so the baseline of 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific compound action: connect a GitHub repository and trigger a deploy, on a project identified by slug. An agent can distinguish it from siblings like provision_project or deploy_status, though the description never names those alternatives to sharpen the boundary.
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 when-to-use or when-not guidance is given. The only conditional context is the authorization requirement ('Admin (dono) ou super_admin'), which tells the agent who may call it but not when it should be chosen over provision_project or deploy_status.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
query_dataC
Buscar dados paginados de uma tabela.
| Name | Required | Description | Default |
|---|---|---|---|
| page | No | Página (default: 0) | |
| limit | No | Itens por página (default: 50) | |
| table | Yes | Nome da tabela |
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 says only that results are paginated; it never states that the operation is a safe read, whether it requires authentication or specific table permissions, what happens with large result sets, or how defaults interact with the response.
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 short sentence that is front-loaded and free of filler. It is efficient, though the terseness borders on under-specification rather than tight precision.
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, no output schema, and three parameters, the description is far too thin: it omits return shape, safety profile, error conditions, and any routing against the many sibling query/list tools.
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% (page, limit, table all documented inline with defaults), so the baseline of 3 applies. The description adds nothing about parameter meaning, ordering, or pagination interaction beyond what the schema already says.
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?
States a specific verb and resource ('Buscar dados paginados de uma tabela') so an agent knows it retrieves rows from a table with pagination. However it does nothing to distinguish itself from the sibling 'execute_sql', which could also return table data, so it stays at 4 rather than 5.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this versus 'list_tables', 'get_columns', or 'execute_sql'. Nothing indicates whether this is the preferred simple read path or a fallback, and no prerequisites (permissions, table existence) are mentioned.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
update_userC
Atualizar dados de um usuário do projeto.
| Name | Required | Description | Default |
|---|---|---|---|
| nome | No | Novo nome | |
| No | Novo email | ||
| userId | Yes | ID (UUID) do usuário |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full behavioral burden. It implies a mutation but does not disclose partial-update semantics, permission requirements, reversibility, or what happens to fields not supplied.
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 sentence with no wasted words. It is front-loaded with the core action, though it is too terse to be considered fully structured for a mutation tool.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a mutation tool with no annotations and no output schema, the description is incomplete. It does not cover permissions, error behavior, partial-update expectations, or how it relates to sibling tools.
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 the schema already documents userId, nome, and email. The description adds no parameter syntax or meaning beyond what the structured schema provides, making the baseline 3 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 uses a clear verb+resource phrase, 'Atualizar dados de um usuário', naming the update action and the user object. It distinguishes update from siblings like create_user and list_users by implication, but it does not explicitly differentiate itself from those alternatives.
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?
It provides no guidance on when to use this tool versus create_user or list_users, nor does it state prerequisites such as required permissions or that userId is mandatory. Usage is only implied by the name and description.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
15 tool updates
v0.1.0- First observed
create_project - First observed
create_user - First observed
deploy_status - First observed
execute_sql - First observed
get_columns - First observed
get_project_info - First observed
get_service_token - First observed
list_my_projects - First observed
list_tables - First observed
list_users - First observed
login - First observed
provision_project - First observed
publish_project - First observed
query_data - First observed
update_user
TDQS
Scored across 15 tools
Most tools are clearly distinct (e.g., list_tables vs get_columns vs query_data). However, create_project, list_my_projects, provision_project, publish_project, and deploy_status could be confused without careful reading of descriptions, especially around project lifecycle stages.
Tool names consistently use snake_case and follow a verb_noun pattern (e.g., login, get_service_token, list_tables, create_user). Minor inconsistency: 'login' lacks a noun object, but overall predictable.
15 tools is within the reasonable range (3-15) for a server covering authentication, project management, data querying, and deployment. Slightly on the higher side but each tool appears to serve a distinct purpose.
While the surface covers authentication, project info, table/column listing, data query, SQL execution, user CRUD, and project creation/deployment, there are gaps: no delete operations for users or projects, no update for projects, and no explicit get_project (only list_my_projects). These missing operations may cause dead ends for agents needing full lifecycle management.
Maintenance
Related MCP Connectors
Your Supabase account in natural language: run SQL, apply migrations, manage tables, storage, edge f
AI agents propose database changes as reviewable requests — no direct write access.
Safe, read-only Postgres and MySQL access for AI agents. Audit log + column-level controls.
Read and edit DB Planner database schemas, diagrams and board layouts as an AI agent.
Related MCP Servers
- AlicenseAqualityAmaintenanceAllows AI assistants to list tables, read data, and execute SQL queries through a controlled interface, making database exploration and analysis safer and more structured.311,624 PyPI1,389MIT
- AlicenseNot gradedqualityDmaintenanceEnables AI assistants to interact with PostgreSQL and Supabase databases through natural language. Supports secure database operations including queries, migrations, and schema management with user-provided credentials.9 npm1MIT
- AlicenseNot gradedqualityDmaintenanceConnects AI assistants to Supabase projects, enabling them to manage tables, query data, deploy Edge Functions, handle migrations, and access project resources through natural language commands.Apache 2.0
- AlicenseNot gradedqualityBmaintenanceProvides AI assistants with read-only access to inspect database schemas, preview data, and run safe queries across PostgreSQL, MySQL, MongoDB, and SQL Server. It enables AI tools to understand database structures and relationships automatically to generate more accurate code.6 npm7MIT