Skip to main content
Glama
inhabitants

sapiens-mcp

sapiens-mcp

On the official MCP registry as com.sapiensinteticos/sapiens.

An MCP server to operate your Sapiens Sintéticos account from Claude Code, or any MCP client, in your own account. You ask in plain language ("generate an image of this", "write an essay on that") and it does the work, spending your Sinapses (the house credit) and saving to your profile.

Sapiens Sintéticos is an AI prototyping lab. This server is the exoskeleton: image, video, article, voice, music, a personal Repertório (the creative memory the rest reads from), and the community, all from a single conversation.

Account-gated by design

You connect with a Sapiens account (Google or email), no API key, no card. Accounts and login live on the site, never here. No account yet? Create one at sapiensinteticos.com. Every action shows its cost before it runs, and a failed generation is refunded. The remote endpoint is fail-closed: no valid session, nothing runs.

Related MCP server: ComfyUI MCP Server

Connect (two ways)

Remote (any MCP client, streamable HTTP). Point your client at:

https://sapiensinteticos.com/api/mcp/mcp

with the header Authorization: Bearer <sessionToken>. Generate the token at sapiensinteticos.com/conectar-claude. Identity is always the bearer, so there is no local login on the remote transport.

Local (Claude Code, npm / stdio).

claude mcp add sapiens -- npx -y sapiens-mcp

Node 18+. The backend URL is built in, nothing to configure. Then log in: open /conectar-claude while signed in, generate the code (XXXX-XXXX, valid for 5 minutes), and run sapiens_meta with action: "login" and code: "XXXX-XXXX". The 30-day token is saved to ~/.sapiens-mcp/session.json.

Works in Claude Code (the tested path), Gemini CLI, Cursor, Antigravity, and any MCP-speaking client. Only the way you add it changes.

What you can ask (and the cost in Sinapses)

What

Cost

Generate an image (to your gallery)

~400-500

Write an article in the Sapiens voice (to your profile)

400

Voice / narration (Helen TTS)

500

Song lyrics / render (Musicator)

300 / 3000

Persona art

450

Repertório, list/edit your articles, check balance

free

The Claude side always warns the cost before spending. Publishing to the editorial blog and the Coluna Sapiens stays with the platform owner, never your account.

Troubleshooting

  • "sessionToken expired" / "Sapiens account not connected". The 30-day token lapsed or was never saved. Open /conectar-claude signed in, generate a fresh code, and run sapiens_meta action=login code=XXXX-XXXX.

  • A tool or a new capability went missing after an update. The client runs via npx -y sapiens-mcp (unpinned) and may be stuck on an old cache. Check what is running with sapiens_meta action=version (binary version, latest on npm, and upToDate). If upToDate:false, clear the npx cache and restart the client.

  • "Invalid arguments". The message already names the field that is missing or wrong, redo the call with what it asks. Do not repeat the same failing call (3 failures in a row make the client mark the server unreachable for about a minute, an anti-loop breaker).

  • Low balance before generating. sapiens_meta action=credits (or action=subscription for the per-bucket detail) shows what is left before you spend on image, music, or video.

Privacy

The server only talks to the public Sapiens backend (Convex). Your identity always comes from your login token, never from loose parameters. Each account only touches what is its own.

The house

Sister properties from the same Borderless house:

  • sapiensinteticos.com: the studio, and this server's home.

  • aitag.app: a curated directory of AI tools (BR and EU). The Sapiens Repertório pulls from this catalog.

  • helenai.wtf: Helen, the house's autonomous humanized AI brand (music, chat, comics). The style anchor of Sapiens.


Feito no espírito borderless. Licença MIT. Com ❤️ /conectar-claude.

Available Tools

29 tools
sapiens_articleAInspect

CRUD direto de artigos do blog Sapiens. Sub-actions: get (by slug, retorna doc completo pra edit local), update (patch em title/excerpt/tldr/content/tags/etc + VISUAIS: thumbnailUrl capa webp, ogImageUrl JPEG do preview social, bodyImages array das ilustrações inline, conceptMap mapa visual — pra recapear um artigo num novo estilo; NÃO toca status/column/format), publish (status='published', set publishedAt), unpublish (volta pra draft), delete (irreversível), ensure_visuals (gera banner/ilustrações inline/conceptMap que faltam no artigo; idempotente, pula o que existe; ~1700 Sinapses num artigo pelado, forceBanner/forceInline/forceConceptMap regeram). Pra criar artigo novo use sapiens_quote_pop (quote ou pop) ou sapiens_pipeline action=create_draft_article_and_source (cru, vira source).

ParametersJSON Schema
NameRequiredDescriptionDefault
slugNoObrigatório pra action=get. Forma kebab-case.
tagsNo
tldrNo
titleNo
actionYes
tldrEnNo
contentNo
excerptNo
titleEnNoupdate: título em inglês. Com contentEn, publica a versão EN em /en/articles/<slug>.
categoryNo
articleIdNoObrigatório pra update/publish/unpublish/delete/ensure_visuals. Pode descobrir via action=get (o retorno tem _id).
contentEnNoupdate: corpo em inglês (markdown, mesmo formato do content). Transcreation na voz da casa, não tradução literal.
excerptEnNo
bodyImagesNoupdate: SUBSTITUI as ilustrações inline do corpo (tabela article_visuals). Passe o array COMPLETO (não faz merge) — todas as imagens que o artigo deve ter, na ordem. O conjunto antigo vai pro histórico (manual_replace). Use pra recapear artigo num novo estilo. url tem que ser host Sapiens (Bunny/Convex).
conceptMapNoupdate: substitui o mapa visual (conceptMap) do artigo.
ogImageUrlNoupdate: JPEG scraper-safe pro preview social (og:image/twitter:image). Ao recapear um artigo, troque junto com thumbnailUrl (webp), senão o card de compartilhamento do WhatsApp/LinkedIn fica com a imagem antiga.
forceBannerNoensure_visuals: regera banner mesmo se já existe.
forceInlineNoensure_visuals: regera ilustrações inline mesmo se já existem.
inlineCountNoensure_visuals: quantas ilustrações inline gerar (1-3). Default 1.
thumbnailUrlNo
connectedSlugsNo
seoDescriptionNo
forceConceptMapNoensure_visuals: regera mapa visual mesmo se já existe.
seoDescriptionEnNo
educativeReferenceNo
readingTimeMinutesNo

TDQS

A4.9/5.0
Behavior5/5

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

The description adds significant behavioral context beyond the annotations: delete is 'irreversível', update 'NÃO toca status/column/format', ensure_visuals is idempotent and costs ~1700 Sinapses on an empty article, and bodyImages replaces the full set rather than merging. This goes well beyond the readOnlyHint/openWorldHint annotations.

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

Conciseness5/5

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

The description is dense but every clause earns its place: it names the core CRUD capability, enumerates each sub-action with key caveats, and closes with creation alternatives. It is front-loaded with the most important scope statement and avoids filler.

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

Completeness5/5

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

For a 26-parameter multimodal CRUD tool with no output schema, the description covers the operational essentials: required identifiers, action semantics, destructive consequences, idempotence, cost, visual replacement behavior, and alternative routing for creation. Combined with the schema, an agent has enough context to select and invoke it correctly.

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

Parameters4/5

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

Schema description coverage is low (42%), and the description compensates well for the most complex parameters: it explains slug for get, articleId discoverability, visual fields for update, and force flags for ensure_visuals. It relies on natural-language field names for fields like category, tags, and connectedSlugs, which are self-evident, but it does not explicitly cover every parameter.

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

Purpose5/5

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

The description opens with 'CRUD direto de artigos do blog Sapiens' and then enumerates all sub-actions: get, update, publish, unpublish, delete, and ensure_visuals. It clearly distinguishes this tool from creation tools by explicitly directing new-article creation to sapiens_quote_pop or sapiens_pipeline.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

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

It provides explicit when-to-use guidance per action, names alternatives for article creation ('Pra criar artigo novo use sapiens_quote_pop... ou sapiens_pipeline'), and even explains when to use ensure_visuals versus manual visual replacement. No meaningful usage ambiguity remains.

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

sapiens_atlasA
Read-only
Inspect

Atlas Ecossistema IA pelo Claude — READ-ONLY, TRAVADO na Lente do Ecossistema (equipamento pago; admin/dono passa). Identidade SEMPRE do sessionToken; quem não tem a Lente recebe aviso pra adquirir, sem dado nenhum. Serve pra se informar e tirar dúvida em cima dos dados curados da cadeia de valor da IA. Sub-actions: 'overview' (~52 empresas curadas: market cap, indústria, branding — o mapa), 'signals' (sinais recentes do X dos autores curados; filtros opcionais ticker ex 'NVDA' ou authorHandle), 'voices' (Conselho de Vozes: autores ativos + o digest mais recente de cada um), 'briefings' (o briefing semanal mais recente com conteúdo completo + histórico resumido). Nenhuma escrita: aqui o Atlas é só pra consultar e raciocinar.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNoPra signals (default 30, máx 100) ou briefings (default 8, máx 52).
actionYes
tickerNoPra signals: filtra por ticker mencionado (ex 'NVDA', 'TSM').
authorHandleNoPra signals: filtra pelos posts de um autor (@handle sem o @).

TDQS

A4.4/5.0
Behavior5/5

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

Annotations already declare readOnlyHint=true, and the description reinforces this by saying 'READ-ONLY' and 'Nenhuma escrita'. It adds substantial behavioral context beyond annotations: the tool is locked to the paid Lens, identity always comes from sessionToken, unauthorized users get only an acquisition notice, and each sub-action returns a specific kind of curated data.

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

Conciseness5/5

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

The description is dense but well organized: constraints and access model are front-loaded, then each sub-action is given a compact parenthetical summary, and the closing sentence restates the no-write boundary. Nothing feels redundant for a four-action tool.

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

Completeness5/5

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

Given the four sub-actions, an access gate, and no output schema, the description covers the essentials: what each action returns, optional filters, and behavior for unauthorized users. An agent has enough to select and invoke the correct action.

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

Parameters4/5

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

With 75% schema coverage, the schema already documents limit, ticker, and authorHandle, and the action enum. The description adds value by explaining what each action surfaces (e.g., overview maps ~52 curated companies with market cap and industry; signals are recent X posts with optional ticker/author filters). It does not add much beyond the schema for limit, but the action-level context is genuinely useful.

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

Purpose4/5

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

The description clearly identifies a consult/read-only resource: 'Atlas Ecossistema IA' with curated AI value-chain data, listing four sub-actions so an agent knows exactly what it offers. It doesn't explicitly contrast against sibling tools like sapiens_search beyond saying 'Nenhuma escrita', so it stops just short of full sibling differentiation.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

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

It gives clear context for when to use the tool: to inform oneself and answer questions on curated ecosystem data, and it warns that users without the paid Lente receive an acquisition notice and no data. It does not explicitly name alternative tools or say when not to use it, so no exclusions are provided.

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

sapiens_aulaAInspect

Aula (deck da Mentoria OPS, servido em /aulas/) — ADMIN-ONLY (aula é conteúdo de mentor, não de aluno; aluno leva 'restrito ao dono'). Cria e edita aula direto no Convex, sem o script migrate-aulas-to-convex.mjs. Sub-actions: 'list' (slug/título/data/slideCount/voiceWarnings/url), 'get' (1 aula completa por slug, pra editar local), 'upsert' (cria se não existe, senão patch; por slug kebab-case). O aula do upsert é o objeto completo: title (obrig) + slides[] (≥1) + subtitle/data/duration/tag/mentorAgenda opcionais. Slides são { type, ...campos }: cover, cover-image/section-image/content-image (imageUrl), agenda (items[]), content (body markdown/HTML + list[]/listType), two-col (cols[]), quote, callout (tone tip|warn|note), comic (panels[]), pause, close (items[]). O servidor re-linta a voz e grava voiceWarnings (1ª pessoa, anti-corporate, SEM travessão). A rota /aulas/ serve sob demanda; slug novo aparece sem rebuild.

ParametersJSON Schema
NameRequiredDescriptionDefault
aulaNoObjeto completo da aula (obrigatório pra upsert). Campos top-level: title (obrig), subtitle?, data? (YYYY-MM-DD), duration?, tag?, mentorAgenda?, slides[] (≥1). Cada slide é { type, ...campos }. Tipos: cover (eyebrow/title/subtitle/meta), cover-image/section-image/content-image (imageUrl + campos), agenda (items:[{num,title,subtitle,time}]), content (eyebrow/title/body[markdown ou HTML]/list[]/listType), two-col (cols:[{h,body}]), quote (text/attribution), callout (tone:tip|warn|note/tag/body), comic (panels:[{imageUrl,caption}]), pause, close (eyebrow/title/items[]). Voz Sapiens: 1ª pessoa, anti-corporate, SEM travessão (—). O servidor re-linta a voz e grava voiceWarnings.
slugNokebab-case (a-z, 0-9, hífen), ex: 2026-06-25-minha-aula. Obrigatório pra get e upsert.
actionYes

TDQS

A4.4/5.0
Behavior5/5

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

Beyond the annotations (readOnlyHint=false, openWorldHint=true), the description discloses server-side behaviors: voice re-linting producing voiceWarnings, on-demand serving via /aulas/<slug> without rebuild, and admin restriction semantics ('aluno leva restrito ao dono'). These details meaningfully extend what annotations alone provide and do not contradict them.

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

Conciseness4/5

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

The description is dense but not bloated; every sentence carries necessary information and the core purpose is front-loaded before sub-action details. However, it is a single long paragraph without visual separation (bullets/line breaks), which slightly hurts scannability for an agent.

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

Completeness4/5

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

For a complex tool with three sub-actions and no output schema, the description covers the required input structure, slide type taxonomy, voice constraints, and route behavior. The main gap is that the upsert response/return value is not specified, though list fields and get's 'aula completa' output are hinted.

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

Parameters4/5

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

Schema coverage is 67% (aula and slug have descriptions; action does not), and the description compensates by explaining the action enum's behavior, slug kebab-case format, and the upsert semantics (create-if-missing vs patch). It adds real meaning beyond the schema, though it partly repeats the schema's already-detailed aula structure.

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

Purpose4/5

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

The description clearly states the tool's purpose: 'Cria e edita aula direto no Convex' and enumerates its sub-actions (list, get, upsert), making the verb+resource explicit. However, it does not explicitly differentiate from sibling sapiens_* tools, only from the external migrate script, so it stops short of the full sibling-distinguishing criterion.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

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

The description gives explicit when-to-use guidance per sub-action, states that it replaces the migrate-aulas-to-convex.mjs script, and declares the ADMIN-ONLY constraint, including the student case. This is strong, actionable usage guidance with a named alternative and exclusion conditions.

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

sapiens_brandAInspect

Brand Sapiens (= Design System) — paleta + tipografia + voz + estilo de imagem + persona como FONTE ÚNICA de estilo (espelha o Estúdio de Brand do app). Sub-actions: list (oficiais curados + os custom do user, leve, grátis), get (1 brand completo por slug: voz + imageStyle + persona/logo; só oficial ou o próprio), generate (CRIA design system novo a partir de descrição em texto livre; Gemini monta tudo e já nasce com card premium gpt-image-2; ~950 Sinapses, reembolsa se falhar), refine (ajusta brand custom por feedback livre tipo 'fundo mais escuro'/'voz mais seca', ~75 Sinapses), reroll (regenera SÓ 1 peça voice|palette|imageStyle numa direção diferente, grátis), card ((re)gera o card premium, preço de catálogo do modelo), delete (apaga brand custom do próprio user), set_visibility (torna um brand custom do user público/privado: público = aparece no perfil + galeria da comunidade, qualquer logado adota), list_public (galeria de design systems PÚBLICOS da comunidade, opt-in pelos donos, com atribuição), adopt (clona um brand público/oficial numa cópia NOVA e PRIVADA na conta do user; persona é dropada). Qualquer conta logada; Sinapses saem do dono do sessionToken. Pra generate: converse com o user e monte uma description rica (vibe, cores, voz, públicos, refs; se ele colar amostra de texto dele, inclua pra a voz sair dali) ANTES de chamar. Confirme o custo (~950 Sinapses) antes de gerar.

ParametersJSON Schema
NameRequiredDescriptionDefault
nameNoPra action=generate: nome sugerido pro brand (opcional, ≤40 chars). Sem isso o Gemini sugere um.
slugNoSlug do brand. Obrigatório em get/refine/reroll/card/delete/set_visibility/adopt. Pegue via action=list (seus) ou action=list_public (da comunidade).
limitNoPra action=list_public: quantos brands públicos trazer (1-96, default 24).
modelNoPra action=card: tier do card premium (default gpt-image-2-high).
pieceNoPra action=reroll: qual peça regenerar numa direção diferente.
actionYes
feedbackNoPra action=refine: o que ajustar, em texto livre ('escurece o fundo', 'fonte do título mais bruta', 'voz mais seca'). 5..2000 chars.
isPublicNoPra action=set_visibility: true publica o brand (aparece no teu perfil + galeria da comunidade, qualquer um pode adotar), false volta a privado.
descriptionNoPra action=generate: descrição em texto livre do brand (o que o projeto/pessoa é, vibe, cores, voz, referências). Mínimo 30 chars; quanto mais rico, melhor o design system. Se o user colou um texto de amostra dele, inclua aqui pra a voz sair dali.

TDQS

A4.8/5.0
Behavior5/5

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

Beyond the sparse annotations (readOnlyHint=false, openWorldHint=true), the description discloses costs (~950 Sinapses for generate with refund on failure, ~75 for refine, free reroll, catalog model price for card), billing from the sessionToken owner, visibility/publication effects, and persona dropping on adopt. This gives the agent important side-effect awareness.

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

Conciseness4/5

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

The description is dense and front-loaded with the core definition, then organized around sub-actions; the length is justified by ten distinct behaviors. It is slightly run-on and repeats the generate cost warning at the end, but every section carries operational value.

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

Completeness5/5

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

For a multi-action tool with no output schema, the description covers each action's purpose, applicable parameters, auth requirement, costs, and side effects. The agent can correctly select and invoke any sub-action, and the workflow hint for generate fills the main open-ended parameter.

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

Parameters4/5

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

Input schema coverage is high (89%) and already documents parameter purposes, so the description doesn't need to re-explain them. It adds value by mapping params to specific actions (slug for get/refine/reroll/card/delete/set_visibility/adopt, piece for reroll, feedback examples, isPublic semantics) and by giving workflow guidance for generate's description parameter.

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

Purpose5/5

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

The description opens by defining Brand Sapiens as a Design System (palette, typography, voice, image style, persona) and as the single source of style, then itemizes ten concrete sub-actions (list, get, generate, refine, reroll, card, delete, set_visibility, list_public, adopt) with distinct verbs and resources. This clearly distinguishes it from related content-generation siblings and from its own sub-actions.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

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

It explicitly states when each sub-action applies and attaches conditions: get is 'só oficial ou o próprio', delete/set_visibility apply to the user's custom brands, list_public is for community opt-in public designs, and adopt clones into a new private copy while dropping persona. For generate it instructs the agent to converse with the user, assemble a rich description, and confirm the ~950 Sinapse cost before calling.

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

sapiens_characterAInspect

Personagens (character sheets) do Sapiens — a tabela influencers: personagem reutilizável com imagens (pra character-lock em geração) + alma (systemPrompt), tudo amarrado à conta do dono do token (sem admin). Sub-actions: list_public (catálogo global de personagens públicos do Explorar; cada um traz mainImageUrl/imageUrls usáveis direto como referenceImageUrls em sapiens_image; sem custo, sem login), get (detalhe de 1 por characterId — público+ativo qualquer um vê, draft/privado só o dono; systemPrompt só volta pro dono), list_mine (os personagens do próprio user, inclui drafts/privados), create (cria rascunho na conta: name + gender + opcional title/systemPrompt), add_image (adiciona imagem ao próprio personagem via imageUrl público OU sourceImageId da galeria; 1ª vira principal), set_card (edita alma/título/nome do próprio), activate (publica, sai de draft, exige ≥1 imagem), set_visibility (isPublic true=Explorar+slug / false=privado). GESTÃO de imagem (por url, pegue as urls atuais em action=get campo imageUrls): remove_image (tira uma), set_main_image (define a principal), reorder_images (nova ordem via orderedUrls, posição 0=principal), e delete (apaga o personagem, permanente). Fluxo de criação: create → add_image (1+) → set_card (opcional) → activate → set_visibility isPublic=true. Pra usar um personagem público como referência numa geração, pegue mainImageUrl em list_public/get e passe em sapiens_image referenceImageUrls.

ParametersJSON Schema
NameRequiredDescriptionDefault
nameNoPra create (obrigatório) ou set_card (renomear): nome do personagem.
limitNoPra list_public: quantos retornar (default 100, max 200).
titleNoPra create/set_card: subtítulo curto (ex: 'A guia do Sapiens').
actionYes
genderNoPra create: 'masculino' | 'feminino' | 'nao-binario'. Default 'nao-binario'.
isMainNoPra add_image: marca esta como a imagem principal (avatar). 1ª imagem já vira main sozinha.
imageUrlNoPra add_image: URL pública da imagem (Bunny CDN / Convex storage). Use a `url` que sapiens_image/sapiens_gallery devolvem. Pra remove_image/set_main_image: a url da imagem JÁ no personagem (pegue via action=get, campo imageUrls).
isPublicNoPra set_visibility: true = público no Explorar (gera slug), false = privado.
characterIdNoID do personagem (influencers:_id). Obrigatório em get/add_image/set_card/activate/set_visibility. Descubra via list_public ou list_mine.
orderedUrlsNoPra reorder_images: as urls das imagens do personagem na nova ordem (posição 0 = principal). url ausente vai pro fim, nenhuma se perde. Pegue as urls atuais via action=get.
systemPromptNoPra create/set_card: a 'alma' do personagem (personalidade, jeito de falar, contexto). Usado no chat e como guia de geração.
sourceImageIdNoPra add_image: alternativa ao imageUrl — ID de imagem da SUA galeria (generatedImages:_id, via sapiens_gallery action=list). O backend resolve a url e confere que é sua.

TDQS

A4.6/5.0
Behavior5/5

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

Annotations only carry readOnlyHint=false and openWorldHint=true, so the description carries nearly the full burden. It discloses destructive behavior (delete is permanent), preconditions (activate requires ≥1 image), side effects (first image becomes main; public visibility generates a slug), and ownership constraints. Nothing contradicts the annotations.

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

Conciseness4/5

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

The description is dense but every sentence earns its place: it covers 12 sub-actions, preconditions, and integration points. However, the content is a single run-on block with semicolon-separated clauses; grouping the image-management actions helps, but bullet structure would make it more scannable for an agent.

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

Completeness5/5

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

For a complex tool with 12 parameters, no output schema, and minimal annotations, the description is remarkably complete. It explains auth/ownership, public vs draft/private behavior, required image before activation, retrieval of current imageUrls, deletion permanence, and how to use outputs like mainImageUrl downstream. No essential information is missing.

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

Parameters3/5

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

The input schema already covers 92% of parameter descriptions, so the description does not need to compensate. It adds useful action-to-parameter context, such as which parameter applies to which action, but most of this is either restated from the schema or is tool-level workflow context rather than new parameter-level detail.

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

Purpose5/5

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

The description clearly identifies the resource (`influencers` character sheets), what it does (reusable characters with images and system prompts), and enumerates every sub-action. It also distinguishes the tool from image generation tools by explaining how character images are consumed by sapiens_image.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

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

It provides explicit usage rules per sub-action: list_public for the public catalog, get for details, list_mine for own characters, and the ownership/visibility restrictions. It also gives an end-to-end creation flow (create → add_image → set_card → activate → set_visibility) and tells the agent exactly how to use a public character as a reference in sapiens_image.

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

sapiens_communityAInspect

Chat da comunidade Sapiens (assinantes + alumni). Sub-actions: list (últimas N mensagens da sala 'geral' por default), send (Claude posta como intercessor do user; sufixo '· via Claude' é adicionado pelo servidor), react (toggle emoji numa mensagem — allowlist 👍🔥❤️🚀🤯), participants (quem está na sala: username/name/isBot + o mention pronto pra usar — use pra saber com quem falar), search_users (acha alguém por parte do nome/@username, autocomplete de menção). MENÇÃO: escreva '@username' no content do send e o servidor NOTIFICA a pessoa citada (sino + Telegram); descubra o username certo via participants/search_users antes. ANEXO do PRÓPRIO acervo no send: mediaAssetKind (track|video|film|comic) + mediaAssetId monta um card da peça (posse conferida no servidor); asTese=true posta a fala como TESE (card de marca, pingável pro Fórum). Voz nas postagens deve seguir o DNA editorial Sapiens (anti-corporate, primeira pessoa, sem em-dash).

ParametersJSON Schema
NameRequiredDescriptionDefault
emojiNoEmoji da reação (action=react). Allowlist do server: 👍 🔥 ❤️ 🚀 🤯
limitNoPra action=list. Default 30, max 100.
queryNoPra action=search_users: prefixo/parte do nome ou @username pra achar quem está na sala (autocomplete de menção). Devolve até ~8 candidatos com o username pra você marcar no send.
actionYes
asTeseNoPra action=send: posta a fala como TESE (card de marca no chat, pingável pro Fórum). Sem custo.
contentNoTexto da mensagem (action=send). Max ~487 chars (suffix '· via Claude' adicionado pelo servidor). Use voz Sapiens. Marque alguém com '@username' (descubra o username via action=participants) pra notificá-lo.
replyToNocommunityChatMessages:_id da mensagem que está respondendo (action=send opcional).
roomSlugNoDefault 'geral'. Pra criar sala nova precisa do admin no site.
messageIdNocommunityChatMessages:_id (obrigatório pra action=react).
mediaAssetIdNoPra action=send com mediaAssetKind: o id da peça no acervo. Descubra via sapiens_reference / sapiens_musicator list / sapiens_gallery conforme o tipo.
mediaAssetKindNoPra action=send: anexa uma peça do SEU acervo como card (track=faixa do Musicator, video=vídeo gerado, film=Vídeo Programático, comic=tirinha). Requer mediaAssetId. O servidor confere que a peça é sua e está pronta.

TDQS

A4.7/5.0
Behavior5/5

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

The description goes well beyond the annotations, disclosing important side effects: Claude posts as the user's intercessor, the server appends '· via Claude', react is a toggle, mentions notify via bell and Telegram, media ownership is verified server-side, and asTese creates a branded, forum-pingable card. These details are consistent with readOnlyHint=false and give the agent an accurate mental model of the tool's effects.

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

Conciseness4/5

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

The description is dense and every clause contributes useful information. It could be more scannable with bullets or subheadings for each sub-action, but it remains efficient and front-loaded with the core purpose.

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

Completeness5/5

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

For a complex tool with five sub-actions and no output schema, the description covers all major aspects: action selection, mention protocol, asset attachment, TESE behavior, and editorial voice. It even describes expected outputs for participants and search_users, leaving little ambiguity for an agent deciding how to invoke it.

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

Parameters5/5

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

Even with 91% schema coverage, the description adds meaning beyond the schema: it explains how action selects a sub-behavior, how mediaAssetKind/mediaAssetId compose an asset card, how asTese changes the post type, and how query/search_users support mention autocomplete. This integration-level semantics is exactly what the agent needs beyond raw parameter names.

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

Purpose5/5

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

The description clearly identifies the tool as the Sapiens community chat for subscribers/alumni and enumerates five concrete sub-actions (list, send, react, participants, search_users), each with a specific resource and behavior. This makes it readily distinguishable from siblings like sapiens_forum, even without an explicit contrast.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

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

It provides strong context for when to use the tool and strong intra-tool routing guidance, such as using participants/search_users to discover the correct @username before sending and using react for emoji toggling. However, it does not explicitly explain when this tool should be preferred over alternatives like sapiens_forum or when it should not be used.

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

sapiens_forumAInspect

Fórum de Ressonância — o campo público onde a Sintonia ressoa (qualquer conta logada; identidade SEMPRE do sessionToken). Tese = post (raiz ou resposta); voto = ressoar/dissoar; feed ranqueado por Símbolos de Poder (densidade x longevidade). LEI DA CASA: o HUMANO posta direto; o DAEMON não posta, PROPÕE, e o humano em Sintonia assina. A assinatura (aprovar/recusar) fica DE PROPÓSITO fora do MCP (ato deliberado na web /dashboard/forum/proposals ou no Telegram). Sub-actions: 'feed' (teses raiz ativas; cada item traz _id=rootId pra abrir o fio, autor, contadores, seu voto), 'thread' (o fio inteiro de um rootId, em ordem), 'post' (humano publica tese; parentId pra responder, sem parentId abre fio novo; daemon é recusado e mandado propor), 'vote' (postId + type resonate|dissonate; re-clicar igual tira o voto, oposto troca), 'delete' (apaga uma tese SUA por postId; soft-delete, só o autor, idempotente; resposta-folha some, a que segura respostas vira lápide), 'propose' (daemon propõe tese, precisa de Sintonia com humano; nasce pendente e avisa o humano no Telegram + in-app), 'proposals' (a fila: toConsecrate = esperam a sua assinatura, mine = as que você propôs e estão pendentes). Voz das teses segue o DNA Sapiens (1ª pessoa, anti-corporate, sem em-dash).

ParametersJSON Schema
NameRequiredDescriptionDefault
typeNoPra vote: 'resonate' (ressoar) ou 'dissonate' (dissoar).
limitNoPra feed: quantas teses (default 20, máx 50).
titleNoPra post/propose: título opcional da tese.
actionYes
postIdNoPra action=vote: o _id da tese a votar. Pra action=delete: o _id da tese SUA a apagar.
rootIdNoPra action=thread: o _id da tese raiz (vem do feed como item._id ou item.rootId).
contentNoPra post/propose: o corpo da tese (até 20k chars, voz Sapiens).
mediaAltNoPra post com mediaUrl image: texto alternativo da imagem.
mediaUrlNoPra post: anexa vídeo/imagem por URL como card. Arquivo precisa ser mídia da casa (Bunny); vídeo aceita também link do YouTube/Vimeo. Use junto com mediaKind. (Música é via mediaTrackId, não aqui.)
parentIdNoPra post/propose: o _id da tese-mãe quando é resposta. Omita pra abrir fio novo.
mediaKindNoPra post com mediaUrl: 'video' ou 'image'.
mediaTitleNoPra post com mídia: título da peça (faixa/vídeo).
mediaTrackIdNoPra post: anexa uma FAIXA pronta sua (o trackId do sapiens_musicator) como card de música tocável na tese. O servidor valida posse + status.
mediaCoverUrlNoPra post com mediaUrl video: poster/capa (mídia da casa/Bunny).

TDQS

A4.8/5.0
Behavior5/5

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

Goes far beyond the sparse annotations by disclosing soft-delete and tombstone behavior, vote cancellation/switching, daemon rejection and re-routing to proposals, human notification on propose, and the feed item shape. No annotation contradiction: readOnlyHint=false aligns with the described mutating actions.

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

Conciseness4/5

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

Dense but purposeful; the core concept is front-loaded, followed by house rules and a sub-action catalog. Length is justified for a 7-action tool, though a single wall of text would benefit from bullet or paragraph separation.

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

Completeness5/5

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

Covers all seven actions, return-shape hints (feed items carry _id, author, counters, user's vote), the signing handoff, media rules, and the Sapiens voice constraint. Since there is no output schema, the description itself supplies enough of the behavioral contract for an agent to call the tool correctly.

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

Parameters4/5

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

Schema description coverage is 93%, so the schema already documents parameters and the baseline is 3. The description adds action-specific meaning above that: parentId omission opens a new thread, postId is dual-purpose for vote/delete, mediaTrackId ownership is validated by the server, and mediaUrl is restricted to house media.

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

Purpose5/5

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

The description names the resource ('Fórum de Ressonância', public forum), defines its core objects (tese/vote/feed), and enumerates all seven sub-actions with specific semantics. Its scope is unmistakable even among the many sapiens_* siblings.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

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

Explicitly sets when/when-not rules: humans post directly, daemons must propose instead of posting, signing is deliberately outside the MCP, deletes are limited to the author's own theses, and votes toggle/switch. It even names the alternative signing channels (web dashboard and Telegram).

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

sapiens_helenAInspect

Helen Voice TTS via ElevenLabs ou Google Gemini (qualquer logado; cobra Sinapses). Sub-actions: list_presets (catálogo de voiceIds/voiceNames recomendados + stylePreambles), speak (sintetiza, retorna audioBase64+mimeType+sizeBytes). BYOK suportado via clientApiKey, senão usa env do deploy. Custo: ElevenLabs ~$0.30/500c, Google ~$0.01/500c. Max 5000 chars (quebra antes em chunks). text pré-processado pelo caller (sem em-dash, sem markdown).

ParametersJSON Schema
NameRequiredDescriptionDefault
textNoTexto a falar (action=speak). Max 5000 chars.
actionYes
modelIdNoElevenLabs: 'eleven_v3' (default) ou 'eleven_multilingual_v2'. Google: 'gemini-3.1-flash-tts-preview' (default).
voiceIdNoElevenLabs voice_id (obrigatório se provider=elevenlabs). Use list_presets pra ver opções.
providerNoelevenlabs (melhor natural, mais caro) ou google (Gemini TTS, mais barato). Default elevenlabs.
clientApiKeyNoBYOK: chave do user. Se vazia, usa env default do deploy (ELEVENLABS_API_KEY ou GEMINI_API_KEY).
languageCodeNoElevenLabs: ex 'pt' pra PT-BR otimizado.
outputFormatNoElevenLabs ex 'mp3_44100_128'. Default da provider.
stylePreambleNoGoogle: prefixo de instrução de mood ('Read this in a thoughtful tone:'). Não suportado em ElevenLabs.
voiceSettingsNoElevenLabs voice_settings. Default razoável: stability=0.45, similarity_boost=0.75, style=0.30.
googleVoiceNameNoGoogle prebuilt voice (default Kore). Use list_presets pra ver opções.

TDQS

A4.2/5.0
Behavior5/5

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

Annotations only provide readOnlyHint=false and openWorldHint=true, so the description carries the burden of explaining side effects. It does this richly: it mentions charging, external providers, BYOK vs env keys, chunking before 5000 chars, and required caller-side preprocessing. This is substantial behavioral disclosure beyond the structured metadata.

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

Conciseness4/5

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

The description is dense but efficient, covering purpose, sub-actions, output, cost, BYOK, limits, and preprocessing in a compact paragraph. It front-loads the core purpose and avoids redundant restatements, though the density makes it slightly harder to scan than a bulleted structure would be.

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

Completeness4/5

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

Given 11 parameters, a nested voiceSettings object, and no output schema, the description covers the essential missing pieces: return shape, sub-action behavior, provider cost, and text constraints. It lacks details on error handling or provider-specific edge cases, but those are not necessary for basic correct invocation.

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

Parameters4/5

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

Schema coverage is high (91%), so the baseline is 3. The description adds value beyond the schema by explaining the meaning of 'action' sub-actions, the output fields for 'speak', the chunking constraint tied to 'text', and the cost model tied to 'provider'. This is more than the schema provides alone.

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

Purpose4/5

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

The description clearly states the tool is a TTS tool ('Helen Voice TTS') and spells out its two sub-actions ('list_presets' and 'speak'), along with the output form ('audioBase64+mimeType+sizeBytes'). It is specific about providers and scope, though it does not explicitly differentiate itself from sibling tools, so it stops short of a 5.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

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

The description gives clear operational context: who can use it ('qualquer logado'), costing implications ('cobra Sinapses'), BYOK behavior, the 5000-character limit, and the required preprocessing of 'text'. It does not explicitly name alternatives or when-not-to-use conditions, but the provider and sub-action guidance is clear enough for practical selection.

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

sapiens_imageAInspect

Operações de imagem via Sapiens (Gemini, Azure gpt-image-2, Grok, Veo). Sub-actions: 'generate' (gera imagem completa imediato — prompt+model+aspectRatio+size; suporta mode=edit/variation e MULTI-REFERÊNCIA: combine até 4 imagens como referência numa geração só, igual ao modal 'Selecionar Referência' do web — via referenceImageUrls (sua galeria + Acervo + personagens públicos de sapiens_character) e/ou sourceImageIds (ids da sua galeria); refs valem pros modelos robustos nano-banana-2/gpt-image-2-/grok-2-image), 'request_generation' (cria APENAS row pendente em generatedImages + debita créditos — pra modelos sapiens-video-* ANTES de sapiens_shorts/sapiens_video; whitelist, rate limit 3/min), 'compose' (combina persona+screen via Gemini pra app-demo Shorts; 25 sinapses, rate limit 10/min). generate=image one-shot, request_generation=criar row video, compose=montar start frame app-demo. TEMPLATE: passe templateSlug numa generate pra usar um super-prompt travado da casa — o prompt vira só a CENA (quem + pose + objeto-conceito) e o template embrulha estilo+fundo+enquadramento+ref de traço. 'retrato-sapiens-v1' = retrato editorial cartoon de um personagem no grid verde Sapiens (mesma 'mão' dos artigos); sem ref própria, injeta a Helen como âncora de traço (passar referenceImageUrls troca quem aparece). Mutuamente exclusivo com brandSlug. Sub-action 'models' (sem custo, sem login): lista o catálogo vivo (modelos ativos + preço atual com override admin + maxResolution + se aceita referência) pra descobrir modelo/preço em vez de chutar. NOTA: generate é SÍNCRONA e cobra ao concluir; modelo pesado (Pro, gpt-image-2-high, Grok quality, 2K/4K) cai na REGRA DO TIMEOUT (cheque sapiens_gallery action=list antes de repetir, evita cobrança dupla).

ParametersJSON Schema
NameRequiredDescriptionDefault
modeNoDefault 'create' (gera do zero). 'edit' aplica prompt como mudança sobre sourceImageId. 'variation' gera similar mantendo estilo. Edit/variation exigem sourceImageId e enviam a imagem como referência inline pro modelo.
sizeNoDefault '1K'. Adder de resolução só nos modelos com hasResolutionAdder: nano-banana-max e nano-banana-2 aceitam 2K (+100) e 4K (+300); grok-2-image e grok-2-image-quality aceitam só 2K (+100), sem 4K. Nos demais modelos o size é ignorado (fica em 1K).
modelNoDefault 'nano-banana-2' (Flash 3.1 com refs). 'nano-banana-max' (Pro 3) = qualidade alta. 'gpt-image-2-low/high' = Azure. 'grok-2-image'/'grok-2-image-quality' = xAI Grok Imagine (moderação frouxa +18, aceita refs e aspect; quality é mais fiel pra character lock). DEGEN (uncensored, gate +18): 'wavespeed-chroma' (fotorrealista rápido), 'wavespeed-flux2' (Flux.2 Klein), 'wavespeed-flux-nsfw' (flux+LoRA NSFW, Ousadia regulável via loraIntensity), 'wavespeed-klein-anime' (Flux.2 Klein + LoRA anime, inteligente+controlável), 'wavespeed-klein-anime-plus' (Klein anime +18, Ousadia regulável) = WaveSpeed rápido; 'civitai-wai-illustrious'/'civitai-nova-anime-xl' (anime), 'civitai-pony-v6' (Pony V6 XL, base nº1) = Civitai sdcpp rápido. 'fal-krea2-realism'/'fal-krea2-realism-v2' (Krea-2 Turbo 12B + LoRA de realismo, fal.ai, ~4s, fotorrealismo forte) = SÓ txt2img (não aceita referência).
actionYes
promptNoPrompt da imagem (obrigatório em generate/request_generation). Full-bleed, sujeito oversized.
styleIdNoDefault 'none'. IDs de estilo no convex/shared/imageStyles.ts.
brandMarkNoMarca na imagem do brand: 'persona' (personagem do brand via character sheets, ex: Helen), 'logo' (carimba a logo no canto), 'none' (só o estilo). Default 'none'. Só aplica se brandSlug setado e o brand oferecer a marca.
brandSlugNoSlug do brand (design system) pra aplicar estilo visual. Fonte única: tabela `brands` (ex: 'sapiens', 'solarpunk', 'editorial-duotone', 'brutalista-mono'). Default: nenhum (prompt cru). Vale em action=generate (mode=create) e request_generation.
useStudioNoQuando true, gera SEGUINDO o studio do user (o 'Meu Studio', ÚNICO, resolvido pela sessão — você NÃO passa id): marca + personagem-operador + a vibe + os presets do bloco de imagem entram sozinhos (o explícito sempre vence). O retorno traz studioApplied: true se aplicou o studio, false se caiu no Sapiens base (sem studio montado — aí avise o user). É o 'criar no meu studio' do Nível 2, e gerar assim faz o studio evoluir. SEM useStudio = geração base, fora da identidade dele: não misture. Cheque o studio com sapiens_studios action=mine. Vale em action=generate.
aspectRatioNoDefault '1:1'. 9:16 = vertical pra story/short, 16:9 = landscape.
instructionNoPra action=compose: instrução em EN pro Gemini. Ex: 'Compose a vertical 9:16 photo: persona holding a smartphone facing the camera, the phone screen displaying the provided second image (clearly visible, sharp). Mobile photography aesthetic.'
influencerIdNoID de personagem (influencer) pra character-lock. Normalmente resolvido sozinho do studio quando useStudio=true; passe só pra forçar outro personagem.
templateSlugNoSlug de um template de imagem (super-prompt travado da casa). Quando setado, o `prompt` vira só a CENA (quem + pose + objeto-conceito) e o template embrulha com o estilo + fundo + enquadramento + ref de traço da casa. Ex: 'retrato-sapiens-v1' = retrato editorial cartoon de UM personagem no grid verde Sapiens (mesma 'mão' dos artigos). O template define model/aspect/size default (sobreponíveis) e injeta a ref da Helen como âncora de traço quando você não passa referenceImageUrls própria (passar refs = trocar quem aparece, mantendo o estilo). Mutuamente exclusivo com brandSlug. Vale em action=generate, mode=create.
loraIntensityNoOusadia da LoRA regulável, SÓ nos modelos com LoRA tunável ('wavespeed-flux-nsfw' e 'wavespeed-klein-anime-plus'): suave=insinua sem despir, medio=maduro no limite (default), forte=sem freio. Ideal pra remixar personagem (ex: a Helen) preservando a identidade e regulando a liberdade. Ignorado nos demais modelos.
personaBase64NoPra action=compose: base64 da imagem persona (start ref). 1 dos {personaBase64, screenImage*} obrigatório.
sourceImageIdNoID de imagem do gallery do próprio user (`generatedImages:_id`). Obrigatório pra mode=edit ou mode=variation. Use sapiens_gallery action=list pra descobrir IDs.
negativePromptNo
screenImageUrlNoPra action=compose: URL da tela (Bunny CDN). Convex baixa server-side.
sourceImageIdsNoAté 4 IDs de imagens da SUA galeria (`generatedImages:_id` via sapiens_gallery) usadas como referência. Alternativa por-id ao referenceImageUrls pras suas próprias imagens (ownership checado). Soma com referenceImageUrls (teto total de 4).
personaMimeTypeNo
screenImageBase64NoPra action=compose: base64 da tela. Alt: screenImageUrl.
referenceImageUrlsNoAté 4 URLs públicas de referência pra combinar numa geração só (character/style lock), igual ao modal 'Selecionar Referência' do gerador web. Fontes: sua galeria (sapiens_gallery, campo url), o Acervo, e personagens públicos (sapiens_character action=list_public → mainImageUrl/imageUrls). Restrito a hosts do Sapiens (Bunny CDN / Convex) + Wikimedia. Requer model com refs: nano-banana-2, gpt-image-2-* ou grok-2-image*. Soma com sourceImageIds (teto total de 4).
screenImageMimeTypeNo

TDQS

A4.7/5.0
Behavior5/5

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

The description discloses major behavioral traits beyond the sparse annotations: generate is synchronous and charges on completion, heavy models are subject to timeout, request_generation debits credits and creates only a pending row with rate limits, and compose has synapse/rate limits. It even warns to check sapiens_gallery before retrying to avoid double charging.

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

Conciseness4/5

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

The description is long, but the tool is complex with 23 parameters and four sub-actions. It uses labeled blocks and dense semicolon-separated facts effectively. There is some redundancy, such as the 'generate=image one-shot, request_generation=criar row video, compose=montar start frame app-demo' recap, but most sentences carry operational value.

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

Completeness4/5

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

The description covers invocation prerequisites, rate limits, costs, timeout handling, and where to verify results via sapiens_gallery. With no output schema, explicit return shapes for each action are not fully described, though schema-level parameter notes partially compensate by mentioning fields like studioApplied.

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

Parameters4/5

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

Schema coverage is already 83%, so the baseline is 3. The description adds meaningful cross-parameter semantics: multi-reference limits combining referenceImageUrls and sourceImageIds, model-specific reference support, templateSlug/brandSlug mutual exclusivity, and template behavior that turns prompt into scene-only input. It doesn't explain a few lower-level params like negativePrompt and MIME-type fields, but the added value is solid.

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

Purpose5/5

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

The description opens by defining the tool's scope (image operations via Sapiens) and then enumerates four sub-actions with distinct verbs: generate, request_generation, compose, and models. It also distinguishes these from video-oriented siblings by explicitly referencing sapiens_shorts/sapiens_video for the request_generation path.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

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

It explicitly states when to use each sub-action: request_generation is for sapiens-video-* models before sapiens_shorts/sapiens_video, generate is the one-shot image path, compose builds the Shorts app-demo start frame, and models discovers live pricing/capabilities instead of guessing. This gives clear routing among alternatives.

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

sapiens_instagramAInspect

Auto-DM do Instagram da casa (o 'ManyChat próprio') — ADMIN-ONLY (dono). Quem manda DM ou comenta keyword num post do @sapiensinteticos recebe resposta automática; aqui você OPERA esse motor. Sub-actions: 'rules' (lista regras: keyword+sinônimos, matchMode, trigger, resposta, variações, eco público, escopo por post, disparos), 'rule_upsert' (cria/edita regra; ruleId presente = edita; keyword (+keywords sinônimos) + reply obrigatórios fora do fallback; matchMode contains|exact|starts; trigger dm|comment|story|all; replyVariants/echoVariants rodam em round-robin pra não repetir; mediaId escopa a regra num post — pegue ids reais com action=posts; isFallback responde DM sem keyword 1x/24h por pessoa), 'rule_delete' (apaga por ruleId), 'posts' (posts recentes da conta: id+caption+thumb, pra usar o id em mediaId), 'inbox' (conversas recentes; cada uma com canReply = janela de 24h da Meta aberta ou não), 'thread' (mensagens de uma conversa por igUserId), 'send' (responde na mão pela janela de 24h; fora dela a Meta recusa). Eco público opcional no comentário ('te respondi no direct!'). Limites da API: não dá pra iniciar conversa, só reagir; janela de 24h pra responder DM.

ParametersJSON Schema
NameRequiredDescriptionDefault
textNoTexto da resposta manual (send).
limitNoMáx de itens (inbox default 30, thread default 40).
replyNoResposta na DM (obrigatória no rule_upsert).
actionYes
activeNoRegra ativa (default true).
ruleIdNoId da regra (rule_upsert pra editar, rule_delete).
keywordNoKeyword principal da regra (substring case-insensitive por padrão). Obrigatória em regra não-fallback (ou use keywords).
mediaIdNoEscopo por post: id de mídia do Instagram; a regra só casa comentário DESSE post.
triggerNoO que dispara: dm / comment / story (resposta a story) / all (default: DM e comentário).
igUserIdNoIGSID da contraparte (vem do inbox). Pra thread e send.
keywordsNoSinônimos: a regra casa se QUALQUER um (keyword + keywords) bater. Ex: [site, url].
priorityNoMenor casa primeiro (default 100).
matchModeNoComo a keyword casa: contains (substring, default) / exact (palavra inteira) / starts (texto começa com).
isFallbackNoFallback: responde DM sem keyword (1x/24h por pessoa). Nunca dispara em comentário.
commentEchoNoEco público no comentário depois da DM ('te respondi no direct!'). Só p/ comentário.
echoVariantsNoVariações do eco público (round-robin).
replyVariantsNoVariações da resposta; presentes, rodam em round-robin no lugar da reply.

TDQS

A4.7/5.0
Behavior5/5

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

Annotations say readOnlyHint=false and openWorldHint=true, and the description is fully consistent with those. It discloses mutation effects (cria/edita, apaga, responde na mão), permissions (ADMIN-ONLY), API limits (Meta refuses outside the 24h window), and algorithmic behaviors such as round-robin variants and the fallback rule firing only 1x/24h per person. This goes well beyond what the annotations alone communicate.

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

Conciseness4/5

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

The description is front-loaded with purpose and the admin gate, and every clause contributes to one of the seven actions or the API constraints. However, it is a long, dense run-on paragraph (roughly 250 words) that mixes action semantics, parameter rules, and limitations; better separation would improve scannability. The length is defensible given the 17-parameter/7-action surface.

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

Completeness5/5

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

There is no output schema, yet the description covers output-oriented details for key actions, such as posts returning id+caption+thumb and inbox conversations exposing canReply based on the Meta window. It also covers required parameter combinations, ID provenance, API restrictions, and edge-case caveats like fallback not firing on comments. For a complex tool, this is a complete enough description for an agent to select and invoke the correct action.

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

Parameters5/5

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

Schema coverage is already 94%, and the description still adds valuable cross-parameter semantics: keyword+reply are mandatory outside fallback, matchMode and trigger values are explained, mediaId scopes a rule to a post and tells the agent to get real IDs via action=posts, and igUserId comes from inbox. It also clarifies behavioral effects like replyVariants/echoVariants round-robin and fallback never firing on comments, which the schema alone does not express.

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

Purpose5/5

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

The description names a specific resource and operation: the Instagram auto-DM engine ('ManyChat próprio') for @sapiensinteticos, and says 'aqui você OPERA esse motor.' It enumerates seven sub-actions (rules, rule_upsert, rule_delete, posts, inbox, thread, send), so an agent can clearly identify what the tool does. This strongly differentiates it from the many sapiens_* sibling tools by resource and action space.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

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

The description states 'ADMIN-ONLY (dono)' and defines the operating context: when DMs or keyword comments arrive, this tool operates the automation engine. It gives concrete workflow hints such as 'pegue ids reais com action=posts' and 'vem do inbox', plus an explicit exclusion: 'não dá pra iniciar conversa, só reagir; janela de 24h pra responder DM.' It does not name alternative siblings, but the action-level routing is strong enough for this domain.

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

sapiens_metaAInspect

Utilitários transversais: start (porta de entrada do primeiro contato — sem login ensina a conectar, com login mostra saldo/tier + primeiros poderes com exemplo pronto + 'comece por aqui'), login (conecta a conta com o código de sapiensinteticos.com/conectar-claude, salva sessão de 30 dias localmente), logout, whoami (tier user/admin + saldo + email), credits (saldo agregado), subscription (plan + status + saldo por bucket subscription/grants/free + warnings low/critical), formats (schemas por formato), health (inclui a versão do MCP), version (qual versão do sapiens-mcp está REALMENTE rodando + se é a última do npm; não exige login; use pra saber se o client pegou a versão nova ou ficou preso em cache do npx), app_url (URLs canônicas). Use credits/subscription antes de gerar imagem pra avisar se vai estourar.

ParametersJSON Schema
NameRequiredDescriptionDefault
codeNoCódigo XXXX-XXXX gerado (logado) em sapiensinteticos.com/conectar-claude. Só pra action=login.
actionYes

TDQS

A4.1/5.0
Behavior4/5

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

The description discloses behavioral details beyond annotations: login saves a 30-day local session, version does not require login, start behaves differently depending on login state, and subscription emits low/critical warnings. Annotations only provide readOnlyHint=false and openWorldHint=true, so the description carries the burden and does it well.

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

Conciseness3/5

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

The content is dense and every phrase adds value, but it is structured as one long run-on paragraph with deep parentheses, making it harder to parse. A bulleted list or per-action sentences would improve scannability. It is informative but not concise in format.

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

Completeness4/5

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

With no output schema, the description compensates by explaining the key outputs for whoami, subscription, health, and version, and by giving usage warnings for quota checks. A few actions like logout, formats, and app_url are only briefly named, but their behavior is fairly self-evident given the overall utility context.

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

Parameters5/5

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

The description adds significant meaning to both parameters. It explains what each action enum value does, and it clarifies the code parameter format (XXXX-XXXX) and when it applies (action=login). The schema itself only documents code with a short note and lists enum values, so the description fully compensates for the 50% schema coverage.

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

Purpose4/5

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

The description clearly identifies the tool as transversal utilities and enumerates each action (start, login, logout, whoami, credits, subscription, formats, health, version, app_url) with a specific purpose. It does not explicitly contrast with sibling tools, but the action-level detail differentiates it from the content-generation siblings.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

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

The description provides concrete usage timing: use credits/subscription before generating images to warn about quota exhaustion, and use version to detect whether the client is stuck with cached npx code. It does not explicitly state when not to use the tool or name alternative tools, but the meta/utility nature is clear from the action list.

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

sapiens_musicatorAInspect

Musicator — loop completo de música via voz Sapiens, sem precisar da UI (qualquer logado; lyrics 300 / render 3000 Sinapses). Sub-actions: 'create' (cria brief+track draft num passo, custo 0, devolve trackId), 'lyrics' (gera letra PT + stylePrompt EN; passe trackId pra GRAVAR na track e deixar pronta pra render, ou sem trackId pra só receber o texto inline; 300 sinapses), 'list' (suas tracks: id/título/status/áudio), 'get' (detalhe de uma track pra acompanhar render — status/áudio/letra), 'render' (schedula synth Lyria/ACE/Suno num trackId pronto, assíncrono fire-and-forget, 3000 sinapses, 3/min), 'publish' (publica uma faixa PRONTA do user no Acervo da Comunidade — aba Músicas — com eco no Chat e Fórum; CURADO: só admin/dono, custo 0, idempotente), 'list_public' (lê o Acervo público de músicas da Comunidade, sem custo, sem login). Fluxo cheio: create → lyrics(trackId) → render → get (poll status: rendering → ready/failed) → publish (dono). Tudo escopado por dono (só mexe nas suas tracks).

ParametersJSON Schema
NameRequiredDescriptionDefault
pageNoaction=list_public: página do Acervo público (0-based, default 0).
seedNoPra action=render: seed pra reprodutibilidade do synth.
limitNoaction=list: quantas tracks trazer (1-50, default 20). action=list_public: faixas do Acervo (1-48, default 18).
titleNoTítulo da faixa (create/lyrics). Vai no brief/metadata. Mín 3 chars.
actionYes
toChatNoaction=publish: ecoar no Chat da comunidade (card tocável). Default true.
contextNoTema/argumento (create exige ≥20 chars; lyrics ≥10). 1-2 frases com ângulo/provocação.
toForumNoaction=publish: ecoar no Fórum como tese-raiz. Default true.
trackIdNomusicator_tracks:_id. Obrigatório p/ action=render e action=get. Em action=lyrics, opcional: se passado, grava a letra na track (status=lyrics_ready).
languageNoDefault 'pt-BR'. Pode ser 'en', 'es', etc.
directionNoGênero/mood (ex: 'synthwave melancólico 1980s', 'lo-fi hip-hop 80 BPM', 'acoustic indie folk'). Default 'livre'.
negativePromptNoPra action=render: negative prompt do synth (provider-dependent).
stylePromptOverrideNoPra action=render: sobrescreve stylePrompt antes do render (não muda track persistido).

TDQS

A4.6/5.0
Behavior5/5

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

Beyond the sparse annotations (readOnlyHint=false, openWorldHint=true), the description discloses per-action costs, render's fire-and-forget async behavior, publish's side effects echoing to Chat and Fórum, owner scoping, and the rendering status lifecycle. This is rich behavioral context with no contradiction against the annotations.

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

Conciseness4/5

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

The description is dense but organized: overview, sub-action list with costs and effects, then the recommended flow and ownership scope. The length is justified by seven sub-actions and several operational details, though the opening sentence mixes cost data into the overview, making it slightly less scannable than it could be with a more structured layout.

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

Completeness5/5

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

Given the complexity of 13 parameters, seven sub-actions, and no output schema, the description covers the full lifecycle, permissions, costs, side effects, and enough return hints (trackId, list fields, get fields) for an agent to call and sequence the tool correctly. Nothing essential for selection or invocation is missing.

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

Parameters4/5

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

Schema description coverage is 92%, so the baseline is already 3. The description adds action-level semantic meaning: trackId is required for render/get but optional and persistence-oriented for lyrics, create returns a trackId at zero cost, and list returns track metadata including status and audio. This goes beyond the schema's per-parameter descriptions without repeating all thirteen parameters.

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

Purpose5/5

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

The opening sentence names the tool as a complete music loop via Sapiens voice without requiring the UI, and immediately enumerates seven concrete sub-actions (create, lyrics, list, get, render, publish, list_public). This is a specific verb+resource framing that clearly differentiates it from the broader sapiens_* siblings like stock audio, studios, or video tools.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

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

The description provides an explicit full workflow: create → lyrics(trackId) → render → get → publish, and gives per-action conditions such as render being asynchronous fire-and-forget, publish being curated and idempotent, and list_public requiring no login. It lacks an explicit 'when not to use' sibling comparison, but inside this multi-action tool the routing guidance is strong.

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

sapiens_personaAInspect

Persona Sapiens — quiz MBTI + perfil do user + arte dos 16 arquétipos. PRIMÁRIO (de graça, qualquer logado): get_quiz (48 perguntas Likert 1..7 + escala, estático — Claude aplica conversando), submit_quiz (manda as 48 respostas {questionId,value}, scoring server-side, salva no perfil; refazer cria profile novo), my_profile (lê tipo atual + persona + breakdown dos 4 eixos com confiança + histórico). SECUNDÁRIO: list_codes (16 codes + grupo NT/NF/SJ/SP, estático), list_generated (personaArtData.getAll, quais artes já existem), generate (arte de 1 arquétipo, 450 Sinapses — combina com 'gera a arte do meu tipo' depois do quiz). Codes: INTJ/INTP/ENTJ/ENTP/INFJ/INFP/ENFJ/ENFP/ISTJ/ISFJ/ESTJ/ESFJ/ISTP/ISFP/ESTP/ESFP.

ParametersJSON Schema
NameRequiredDescriptionDefault
codeNoPra action=generate: código MBTI a gerar a arte. Case-insensitive (normaliza pra maiúscula).
nomeNoPra action=submit_quiz: nome opcional pra personalizar o resultado salvo.
actionYes
answersNoPra action=submit_quiz: as 48 respostas { questionId, value 1..7 }. Pegue os IDs/perguntas com action=get_quiz e colete tudo antes.
vinculoAnswersNoPra action=submit_quiz: as 8 respostas do bloco da casa (par de jogo, ids vn-*). Opcional, mas recomendado: destrava o modo de parceiro e a calibração do Sintético.

TDQS

A4.3/5.0
Behavior5/5

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

The description discloses state-changing behavior, 'salva no perfil; refazer cria profile novo,' and cost, '450 Sinapses,' plus which operations are static. It does not contradict the readOnlyHint:false annotation; it actually explains the mutating actions well.

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

Conciseness4/5

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

The description is front-loaded with the product purpose and organized by PRIMÁRIO/SECUNDÁRIO, making it scannable. Each action clause earns its place. The final enumeration of all 16 codes duplicates the schema enum and adds length, so it is not a 5.

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

Completeness5/5

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

Despite having no output schema, the description covers the return or effect of every action: my_profile's breakdown and history, list_generated's existing art, generate's archetype art, and get_quiz's 48 questions. It also specifies sequence requirements and the cost of generate, making the tool complete enough for an agent to select and invoke it correctly.

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

Parameters4/5

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

Schema coverage is 80%, so the baseline is 3. The description adds useful action-level semantics like the 48-question Likert 1..7 scale, NT/NF/SJ/SP code groups, and server-side scoring. Much of the per-parameter meaning already lives in the input schema, but the description enriches it beyond that baseline.

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

Purpose4/5

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

The description opens by naming the exact domain and resource: 'quiz MBTI + perfil do user + arte dos 16 arquétipos.' It then enumerates each action with its specific purpose, so an agent knows this tool is for MBTI quiz/profile/archetype art operations. It does not explicitly contrast with siblings like sapiens_profile or sapiens_sintetico, so it stops short of full sibling differentiation.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

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

Primary vs secondary actions and a suggested workflow are explicit: get_quiz first, collect 48 answers, submit_quiz, then generate 'depois do quiz'; it also notes generate costs 450 Sinapses and list_codes is static. This is clear contextual guidance. No explicit 'use X instead of Y' alternatives are given, so score 4.

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

sapiens_pipelineAInspect

CRUD do content pipeline Sapiens (sources/productions/publishables). Sub-actions: list_sources, list_articles (use includeDrafts pra incluir drafts; onlyAvailable pra esconder os já virados em source), get_source, get_production, list_versions, add_article_as_source, create_draft_article_and_source (seed), create_production (sourceId+format → productionId draft), update_production (substitui payload, opcionalmente muda status), finalize_production (cria publishable v1, v2... com snapshot), remove_production, remove_source, set_source_done, update_source_notes, restore_version (volta payload duma versão antiga), set_publishable_title (renomeia um publishable), backfill_via (rotula em lote o campo 'via' das productions antigas; dryRun=true só lista), propose_mega_grafico_plan (granular: só gera plano via Gemini, devolve fullPrompt+spec), run_mega_grafico_full (ONE-SHOT, recomendado: cria production+propõe plano+gera imagem+aplica selo Sapiens+finaliza publishable numa chamada só), generate_carousel (gera um carrossel editorial standalone a partir de brief OU articleId — 7-9 slides na voz Sapiens + imagens do banco; devolve id + url do editor pro humano abrir, ajustar e exportar; admin-only, cobra Sinapses, reembolsa se falhar). generate_carousel_production (o IRMÃO PIPELINE do generate_carousel: recebe um sourceId de artigo, CRIA a production carrossel_ig e a preenche pelo MESMO motor da casa, já no shape editorial (templateId+slots) que o editor de pipeline renderiza — prefira ESTE a create_production+payload cru pro carrossel, que abre VAZIO no editor; devolve productionId + url do editor de pipeline; admin-only, cobra Sinapses, reembolsa se falhar). CARROSSEL FINO (edição sem tela, admin-only): list_carousels (seus carrosséis standalone), get_carousel (payload completo + catálogo de templates com slots/limites + paletas — tudo pra VOCÊ escrever os slides), update_carousel (payload inteiro de volta, sanitizado no servidor; preserve os campos image dos slides que não mexeu), carousel_auto_images (IA escolhe imagens do banco pros slides de foto, 60 Sinapses; makeVisual=true converte slides de texto pra layouts de foto antes — ritmo visual; generateMissing=true gera imagem nova pros que o banco não cobrir, ~450 Sinapses cada, até 4, avise o custo antes), carousel_generate_image (imagem nova pra UM slide, ~450 Sinapses, customPrompt opcional). Fluxo confortável (standalone): generate_carousel → get_carousel → update_carousel (afia os textos) → carousel_auto_images → humano abre a url pra exportar. Fluxo pipeline (carrossel atrelado a um artigo/source): generate_carousel_production (sourceId) → humano abre a url do editor de pipeline pra revisar e finalizar (finalize_production). Pra mega_grafico, SEMPRE prefira run_mega_grafico_full em vez de sequenciar manualmente (menos drift). Idempotente só na production (passa productionId pra reusar a MESMA row), mas cada run RE-GERA a imagem e cobra de novo (~900 Sinapses): não é grátis re-rodar. OBRIGATÓRIO perguntar ao user antes se withHelen=true (cartoon Helen interage com tema, ~15-25% do poster) ou false (poster 100% diagramático). Custo ~900-1000 sinapses por geração. run_mega_grafico_full, generate_carousel, generate_carousel_production, carousel_auto_images (com generateMissing) e carousel_generate_image são SÍNCRONAS e pesadas: vale a REGRA DO TIMEOUT (podem cobrar mesmo voltando 'Timeout'; cheque get_carousel/dashboard antes de repetir). Use skipFinalize=true se quiser deixar production em 'ready' pro admin revisar antes de publishable. Payload livre por formato — chame sapiens_meta action=formats pra ver schemas sugeridos.

ParametersJSON Schema
NameRequiredDescriptionDefault
viaNoEx: 'claude-mcp', 'modo-antigo', 'manual'
slugNo
tagsNo
tldrNo
briefNoTema/ângulo do carrossel (fonte 'brief'). Quanto mais específico, melhor. Alternativa: articleId pra partir de um artigo publicado.
forceNocarousel_auto_images: TRUE substitui as imagens já aplicadas por escolhas novas. Default false = preenche só o que falta.
notesNoupdate_source_notes: nota livre no source.
titleNo
actionYes
assetsNo
dryRunNo
formatNo
isDoneNoset_source_done: true fecha o source, false reabre.
statusNoupdate_production: muda o status junto do payload (ex: 'ready').
captionNo
contentNo
excerptNo
payloadNoPayload livre por formato
slideIdNocarousel_generate_image: id do slide (ex: 'slide-3'), do payload do get_carousel.
categoryNo
hashtagsNo
sourceIdNocontentSources:_id — get_source/create_production/generate_carousel_production/remove_source/set_source_done/update_source_notes. Vem de list_sources/add_article_as_source.
articleIdNoarticles:_id — add_article_as_source e generate_carousel (fonte artigo). Vem de list_articles.
withHelenNoSe TRUE, plano reserva 1 painel pra Helen Ailith interagindo com o tema (cartoon editorial). Se FALSE, poster 100% diagramático sem figura humana. Pergunte ao user antes de definir.
carouselIdNocarousels_standalone:_id — get_carousel/update_carousel/carousel_auto_images/carousel_generate_image. Vem de generate_carousel ou list_carousels.
makeVisualNocarousel_auto_images: TRUE converte slides de texto pra layouts de foto antes de escolher (ritmo visual pro carrossel texto-pesado). O texto fica, muda a moldura.
customPromptNocarousel_generate_image: direção extra da cena (opcional; sem ela a IA usa o texto do slide).
productionIdNocontentProductions:_id — get_production/update_production/finalize_production/remove_production/list_versions. Vem de create_production.
skipBrandingNoSe TRUE, pula o composite do selo Sapiens + tEXt chunks. Use só quando o Convex storage está fora ou pra debug. Default false.
skipFinalizeNoSe TRUE, gera plano + imagem + branding + salva payload mas NÃO cria publishable (deixa production em 'ready' pro admin revisar). Default false.
specOverrideNoOverride de model/aspectRatio/size sobre os defaults do template. Cada um valida contra o allowedX do template; se sair do whitelist, action throws.
templateSlugNoSlug do template de receita (admin edita em /dashboard/admin/image-templates). Se omitido, usa o template marcado isDefault=true pro formato. Ex: 'mega-grafico-blueprint-v1'.
thumbnailUrlNo
useSinteticoNogenerate_carousel: se TRUE, a voz do Sintético do dono dirige o copy (amplificar). Default false = estilo do dono.
includeDraftsNo
onlyAvailableNoSe true, só artigos que ainda NÃO foram virados em source
publishableIdNocontentPublishables:_id — set_publishable_title/restore_version.
autoPickImagesNogenerate_carousel: a IA escolhe imagens do banco pros slides de foto (default true).
sinceCreatedAtNo
beforeCreatedAtNo
generateMissingNocarousel_auto_images: TRUE gera imagem NOVA (nanoBanana, ~450 Sinapses cada, até 4) pros slides que o banco não cobriu. O fallback stock→gerador. Avise o usuário do custo antes.
includeArchivedNo

TDQS

A4.7/5.0
Behavior5/5

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

The annotations are minimal, so the description carries the burden—and it does so thoroughly. It discloses idempotency limits, regeneration costs (~900 Sinapses), billing/refund behavior, admin restrictions, and the timeout rule: 'podem cobrar mesmo voltando Timeout; cheque get_carousel/dashboard antes de repetir'. No statement contradicts the annotations.

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

Conciseness3/5

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

The content is dense and almost always relevant, but it is delivered as one long unbroken paragraph with semicolon-separated action lists and mixed-language abbreviations. Key workflows and warnings are buried rather than scannable, making the description harder for an agent to parse efficiently despite its substance.

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

Completeness4/5

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

For a 26-action, 42-parameter tool with no output schema, the description covers most operational hazards: return hints, editor URLs, costs, idempotency, ordering rules, and workflow alternatives. It is not exhaustive—some actions lack explicit return descriptions and some parameter combinations are left to inference—but the critical decision-making context is present.

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

Parameters5/5

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

With only 57% schema coverage, the description compensates heavily by mapping actions to parameters: sourceId/productionId/carouselId origins, withHelen's layout effect, force/makeVisual/generateMissing behaviors, specOverride whitelist validation, and skipFinalize semantics. It also directs the agent to sapiens_meta action=formats for free-form payload schemas.

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

Purpose5/5

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

The description opens with a specific resource and operation class: 'CRUD do content pipeline Sapiens (sources/productions/publishables)'. It then enumerates 26 sub-actions with one-line explanations, making the tool's scope unambiguous and distinguishing it from the other sapiens_* tools.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

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

The description gives explicit routing guidance: 'prefira ESTE a create_production+payload cru pro carrossel' and 'Pra mega_grafico, SEMPRE prefira run_mega_grafico_full em vez de sequenciar manualmente'. It also names two complete workflows, clarifies admin-only actions, and instructs when to ask the user about withHelen.

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

sapiens_profileAInspect

O 'tudo junto' do perfil do user (/u/), user-tier. Agrega o que mora no perfil mas estava fora do MCP: identidade + nível/XP + saldo, badges (conquistas) e golden tools (favoritos do aitag). Sub-actions de LEITURA: get (card completo: identidade + nível + saldo + badges + golden tools), badges (só as conquistas, lista cheia), golden_tools (só os favoritos do aitag, lista cheia), notifications (suas notificações recentes do sino + contagem de não-lidas), mark_read (marca uma notificationId ou TODAS as não-lidas como lidas). Sub-actions de ESCRITA (mexem na SUA conta; identidade sempre da sessão): follow/unfollow (seguir/deixar de seguir outro user por followingId=users:_id, descoberto via sapiens_community participants/search_users), update_bio (edita a sua bio), update_username (troca o seu @; inválido/tomado volta {success:false,error}). FAVORITOS de ferramentas de IA (Golden Tools do aitag; o toolId vem de sapiens_repertorio action=search_tools): favorite_tool (favorita/desfavorita, estrela), favorite_lists (suas listas), create_favorite_list (listName+emoji/description/isPublic), add_to_favorite_list/remove_from_favorite_list (toolId+listId), delete_favorite_list (listId). As partes grandes do perfil NÃO são duplicadas aqui, têm tool própria: imagens geradas/publicadas=sapiens_gallery, repertório (filmes/séries/jogos/livros/música)=sapiens_repertorio, personagens=sapiens_character, persona/arquétipo MBTI=sapiens_persona action=my_profile, saldo detalhado por bucket=sapiens_meta action=subscription. Monta a partir de queries já em prod (sem custo).

ParametersJSON Schema
NameRequiredDescriptionDefault
bioNoPra update_bio: o novo texto da sua bio (perfil /u/<username>).
emojiNoPra create_favorite_list: emoji da lista (opcional, ex '⭐').
limitNoPra notifications: quantas trazer (default 15, máx 50).
actionYes
listIdNoPra add_to_favorite_list / remove_from_favorite_list / delete_favorite_list: id da SUA lista de favoritos (via action=favorite_lists).
toolIdNoPra favorite_tool / add_to_favorite_list / remove_from_favorite_list: o toolId da ferramenta de IA (aitagTools). Descubra via sapiens_repertorio action=search_tools.
isPublicNoPra create_favorite_list: lista pública (default true) ou privada.
listNameNoPra create_favorite_list: nome da lista (até 60 chars).
descriptionNoPra create_favorite_list: descrição curta (opcional).
followingIdNoPra follow/unfollow: users:_id de QUEM seguir/deixar de seguir. Você (o seguidor) é sempre o dono da sessão. Descubra o id via sapiens_community participants/search_users ou sapiens_search.
newUsernameNoPra update_username: o novo @ (3-20 chars, alfanumérico + underscore). Já em uso ou inválido volta {success:false,error}.
notificationIdNoPra mark_read: o id de UMA notificação (vem de action=notifications). Omita pra marcar TODAS as não-lidas.

TDQS

A4.3/5.0
Behavior4/5

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

Annotations only indicate readOnlyHint=false and openWorldHint=true; the description adds that write actions modify the current session account, that favorite_tool toggles a star, and that invalid/taken update_username requests return {success:false,error}. It does not state persistence/reversibility of follow or favorite mutations, but the core side effects are disclosed.

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

Conciseness4/5

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

The description is dense but earns its length: a 15-action aggregate needs clauses for read/write grouping, routing, and ID provenance. It is front-loaded with the headline purpose before the sub-action inventory, though a bit more line structuring would improve scannability.

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

Completeness4/5

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

With no output schema, the description covers the return shape for the main read actions (badges full list, golden_tools full list, notifications plus unread count) and the error shape for invalid username changes. It relies on session identity for the current user but never explicitly says that get/badges/golden_tools read the session user's profile, a minor gap for a profile tool.

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

Parameters3/5

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

Schema description coverage is 92%, and the property descriptions already explain each 'action=...' mapping and where IDs come from. The main description repeats that mapping effectively but does not add substantial meaning beyond the schema, so it stays at the baseline for high-coverage schemas.

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

Purpose5/5

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

The opening line defines the tool as the unified user-profile aggregate and enumerates its contents (identidade + nível/XP + saldo, badges, golden tools), then lists each sub-action with a verb and target. It explicitly distinguishes itself from sibling tools by naming the areas that are NOT duplicated here (sapiens_gallery, sapiens_repertorio, etc.).

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

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

The description states when to use this tool and when to go elsewhere: large profile parts are said to have their own dedicated tools, and specific routes are given for discovering IDs (sapiens_community participants/search_users, sapiens_repertorio search_tools). This makes the decision boundary explicit rather than implied.

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

sapiens_quote_popAInspect

Publica curado da Coluna Sapiens (publish_quote), Coluna Repertório (publish_pop) ou Educativo (publish_educativo) via session token. publish_quote: cria entry com column='sapiens', exige objeto quote completo (text/author/sourceWork/license/referenceImage/flowImage). publish_pop: cria entry com column='repertorio' format='pop-article', exige popReference{featuredItemId,relatedItemIds?,lensTheme?}. publish_educativo: cria artigo derivado de aula (Trilhas → Blog), exige educativeReference{sourceLessonId,angle?,partNumber?,totalParts?}. Default status='draft' (admin revisa em /dashboard/admin/...); publishNow=true publica direto.

ParametersJSON Schema
NameRequiredDescriptionDefault
slugYeskebab-case único
tagsNoTags. Pra publish_quote, 'sapiens-column' é adicionada automaticamente se faltar.
tldrNo
quoteNoObrigatório pra publish_quote.
titleYes
actionYes
formatNoPra publish_quote: 'short' (200-600 palavras) ou 'essay' (>600). Default 'short'.
contentYesMarkdown completo do artigo/comentário.
excerptNo
categoryNoDefault 'filosofia-tech' pra quote, 'repertorio' pra pop
overwriteNoPra publish_quote: se draft com mesmo slug existe (status='draft', column='sapiens'), apaga e recria. Não sobrescreve published.
publishNowNoDefault false (cria como draft). True publica direto sem passar por curation.
generatedByNoMarker do gerador (ex: 'claude-opus-4.7-max:sapiens-quote-skill'). Default genérico se omitido.
popReferenceNoObrigatório pra publish_pop. featuredItemId vem de sapiens_repertorio.
thumbnailUrlNo
connectedSlugsNo
educativeReferenceNoObrigatório pra publish_educativo. sourceLessonId vem da query lms:listLessonsForBlogPicker.
readingTimeMinutesNo

TDQS

A3.9/5.0
Behavior4/5

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

Beyond the sparse annotations, the description discloses session-token authentication, default draft status, admin review location, and that publishNow=true publishes directly. For a write tool with readOnlyHint=false, this is meaningful behavioral context. It does not describe failure modes or response behavior, but it adds several non-obvious workflow facts.

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

Conciseness4/5

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

The description is a single dense paragraph with no filler or repeated promotional language. It front-loads the three actions and their conditions before the default-status note. The run-on structure makes it slightly harder to scan, but every clause earns its place.

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

Completeness3/5

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

For a tool with 18 parameters, nested conditional objects, no output schema, and many siblings, the description covers the central branching logic and defaults well. However, it does not describe the expected response/return shape or error behavior, which matters more because no output schema exists, and several secondary parameters are left entirely to the schema.

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

Parameters4/5

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

With 61% schema coverage, the description adds a useful action-to-object mapping and names the key fields inside quote, popReference, and educativeReference. It also explains the publishNow default. One caveat: saying publish_quote requires a 'complete' quote object (text/author/sourceWork/license/referenceImage/flowImage) is stronger than the schema's required ['text','author'], which could mislead an agent about validation strictness.

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

Purpose4/5

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

The description states a specific action ('Publica curado da Coluna Sapiens/Repertório/Educativo') and enumerates three concrete publishing modes with their target columns. It is internally discriminating and explains what the tool creates, but it never explicitly contrasts this tool with the large sapiens_* sibling set, so it stops short of full sibling differentiation.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

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

The description gives clear per-action context: when to use publish_quote, publish_pop, or publish_educativo, and which companion object each requires. It also clarifies the draft-by-default workflow and publishNow bypass. However, it does not name alternative sibling tools or provide explicit when-not-to-use guidance outside these internal modes.

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

sapiens_referenceA
Read-only
Inspect

O 'popup global de referência' do Sapiens — espelha o modal 'Selecionar Referência' do gerador web: um lugar só pra navegar os bancos e pegar o que vira referência em imagem/vídeo. READ-ONLY. Sub-action 'browse' + bucket: 'history' (suas imagens recentes, privadas+públicas), 'favorites' (imagens que você curtiu, só as suas), 'videos' (seus vídeos / Meus Vídeos), 'stock_video' (banco de B-roll da casa, público), 'acervo' (stock + comunidade públicos; aceita term=busca e source=all|stock|community), 'characters' (personagens; mode=mine [default, inclui rascunhos] ou public [Explorar]). Paginado (page/limit, default 20, máx 50; use hasMore). Itens normalizados: imagem PRÓPRIA (history/favorites) traz imageId + url (use imageId em sapiens_image sourceImageIds ou sapiens_video startImageId/endImageId; ou a url em referenceImageUrls); acervo e characters são públicos/de terceiros, use a url (characters trazem mainImageUrl + imageUrls + characterId) em referenceImageUrls / startImageUrl / endImageUrl, NÃO em sourceImageIds. Personagens públicos também têm porta dedicada em sapiens_character action=list_public.

ParametersJSON Schema
NameRequiredDescriptionDefault
modeNoSó bucket 'characters': 'mine' (seus personagens, inclui rascunhos; default) ou 'public' (catálogo do Explorar).
pageNoPágina (default 1). Use com hasMore pra paginar.
termNoBuckets 'acervo' e 'stock_video': busca por texto (prompt/título/tag/mood). Ex: 'chuva'.
limitNoItens por página (default 20, máx 50).
actionYesSó 'browse' por enquanto: navega um bucket do acervo.
bucketYesQual banco navegar: 'history' (suas imagens recentes), 'favorites' (as que você curtiu), 'videos' (seus vídeos), 'stock_video' (Banco de Vídeo da casa: clipes/B-roll prontos, aceita term/orientation/loopOnly), 'acervo' (stock + comunidade públicos de IMAGEM), 'characters' (personagens).
sourceNoSó bucket 'acervo': fonte. Default 'all' (stock + comunidade).
loopOnlyNoSó bucket 'stock_video': só clipes loopFriendly (loop limpo, bom pra fundo).
orientationNoSó bucket 'stock_video': filtra formato (vertical 9:16, horizontal 16:9, square 1:1).

TDQS

A4.7/5.0
Behavior5/5

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

Despite readOnlyHint already being provided, the description adds substantial behavioral detail: pagination behavior (page/limit, hasMore), the distinction between own images (history/favorites) and public/third-party items, and the exact ID/URL usage rules for downstream tools. This goes well beyond the annotation's safety signal and meaningfully shapes how an agent should treat results.

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

Conciseness4/5

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

The description is dense and packs a lot of necessary information, but it is presented as one long paragraph rather than structured bullets. Still, most sentences earn their place: the purpose is front-loaded, bucket semantics are explained, and downstream usage rules are included without obvious redundancy.

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

Completeness5/5

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

Given no output schema, the description compensates well by describing normalized item behavior and how to route imageId/url to other tools. It covers all buckets, pagination, mode, source, filtering options, and an alternative tool for public characters, making it sufficiently complete for an agent to invoke the tool correctly.

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

Parameters5/5

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

Schema coverage is 100%, but the description adds value beyond the property descriptions by explaining bucket semantics, default mode behavior ('mine [default, inclui rascunhos]'), pagination defaults, and cross-tool rules such as using imageId only for own images and url for public items. This materially clarifies how to fill parameters correctly.

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

Purpose5/5

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

The description clearly states the tool's function as the Sapiens global reference popup for browsing media banks and selecting items that become image/video references. It uses specific verbs ('navegar os bancos e pegar') and identifies the resource (reference buckets), and it distinguishes itself from at least one sibling by pointing to sapiens_character action=list_public for public characters.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

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

The description provides explicit context for when to use the tool: to browse reference buckets in read-only mode, with sub-action 'browse'. It also names an alternative for public characters ('Personagens públicos também têm porta dedicada em sapiens_character action=list_public'), but it does not broadly contrast against other sibling tools like sapiens_stock_video or sapiens_gallery, so it stops short of full alternative routing.

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

sapiens_repertorioAInspect

Acervo pessoal de filme/série/anime/jogo/livro/música (Repertório, o segundo cérebro do user). Reads: list (filtros mediaType/status), search (texto em title/genres/tags), get (detalhe), popArticles, resolve (busca capa/ano/id nos providers server-side: OMDb/IGDB-Twitch/AniList/Google Books/iTunes). Mutations (qualquer logado, mexem no PRÓPRIO acervo): add_item, update_item (status/rating/tags/note/isPublic), remove_item. CAPTURA ONE-SHOT travada na lista de providers: quando o user fala natural ('acabei de ver Duna 2, nota 9', 'tô jogando Hollow Knight', 'li tal livro'), (1) infira mediaType e status (assisti/zerei/li=completed, quero=backlog, tô jogando/vendo=active, dropei=dropped) e rating se citado; (2) chame action=resolve {mediaType, query}, escolha o candidato certo e faça add_item passando SÓ o source + externalId DELE + os campos pessoais (status/rating/tags/note). O servidor re-resolve no provider e grava título/capa/ano canônicos — você NÃO manda título/capa nem inventa externalId. (3) Se o resolve não achar (lista vazia/providerKeyMissing), NÃO dá pra adicionar: diga ao user que não encontrou nos providers (não fabrique entry manual). Upsert/dedup por (userId, source, externalId). Só pergunte se ambíguo entre candidatos. FERRAMENTAS DE IA (Repertório de Ferramentas): fluxo separado (vêm do catálogo aitag, não dos providers de mídia). action=search_tools {query} acha a ferramenta no catálogo e devolve o toolId; action=add_tool {toolId, favorite?, rating?, note?} grava como mediaType 'tool' (estar no acervo já é 'usei'; favorite=true liga a estrela). Use quando o user fala 'adiciona o Midjourney/Cursor no meu repertório de ferramentas' ou 'uso tal ferramenta de IA'. Cada ferramenta aponta pra página dela no aitag.

ParametersJSON Schema
NameRequiredDescriptionDefault
noteNoNota pessoal sobre a obra.
tagsNo
limitNo
queryNoTexto pra action=search.
actionYes
itemIdNorepertorioItems:_id (obrigatório pra get/update_item/remove_item).
ratingNo0-10. Pra update_item: passe null pra remover rating.
sourceNoPra add_item: o source EXATO de um candidato do action=resolve (manual=filme/série via OMDb, anilist, twitch=jogo, googlebooks, itunes). Não invente.
statusNo
toolIdNoPra add_tool: o toolId EXATO de um candidato do action=search_tools (catálogo aitag). Dedup por (userId, source aitag, externalId=toolId).
userIdNousers:_id (obrigatório pra list/search/lists). Descobre via sapiens_meta action=whoami.
favoriteNoPra add_tool: marca a ferramenta como favorita (estrela). Estar no acervo já é 'usei'; favorita é o eixo separado de 'curto/indico'.
isPublicNo
mediaTypeNo
externalIdNoPra add_item: o externalId EXATO do candidato do resolve (imdbID p/ manual, id do provider p/ resto). NÃO fabrique/UUID — id que não resolve no provider é rejeitado. Dedup por (userId, source, externalId).
containsSpoilersNo

TDQS

A4.9/5.0
Behavior5/5

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

Annotations only convey readOnlyHint=false and openWorldHint=true, so the description carries the burden — and it delivers. It discloses that any logged-in user mutates only their own collection, that the server re-resolves providers and canonicalizes title/cover/year, that upsert/dedup is keyed on (userId, source, externalId), and that tool entries count as 'used' simply by being added. No contradiction with annotations.

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

Conciseness4/5

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

The description is long, but the complexity of 10 actions and 16 parameters justifies it. It is organized into readable sections (reads, mutations, one-shot capture, AI tools) and front-loaded with the core purpose. Some prose is dense and run-on, but nearly every sentence carries necessary operational information.

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

Completeness5/5

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

For a large multi-action tool with no output schema, this is unusually complete: it covers action semantics, parameter provenance, failure modes, dedup behavior, authentication requirements, and disambiguation rules. Omitted details such as exact return shapes for list/search are secondary because the action flows are fully specified and the schema defines the inputs.

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

Parameters5/5

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

With schema description coverage at only 56%, the description compensates heavily. It explains the most error-prone parameters: source/externalId must come from a resolve candidate and must never be fabricated, status inference from natural language (assisti/zerei/li=completed, quero=backlog, etc.), and toolId must come from search_tools. It also clarifies provider meanings such as manual=OMDb for film/series and twitch for games.

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

Purpose5/5

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

States exactly what the tool is: a personal collection (acervo) spanning media types and AI tools, and enumerates all action families. It clearly distinguishes the two sub-domains (media providers vs the aitag tool catalog) and maps actions to resources, making the scope unambiguous even among many sibling tools.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

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

Provides explicit when-to-use protocols for every action family: reads vs mutations, the resolve-then-add_item flow, one-shot capture trigger phrases, and the failure rule that the agent must not add an entry if resolve returns empty or providerKeyMissing. It also gives concrete when-not-to-act guidance and says to ask only when candidates are ambiguous.

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

sapiens_shortsAInspect

Sapiens Shorts — render vertical 9:16 via VEO com brief structured (admin-only). Sub-action: render. Args: imageId (persona pré-existente em generatedImages, descubra via sapiens_gallery), styleId ('ugc'/'unboxing'/'app-demo'/'reflexao'), brief (product+hook+shots+vibe), references opcionais. render é ASSÍNCRONO: volta na hora com {imageId, status:'rendering', url:null}, e você acompanha com sapiens_video action=status imageId= até status='completed' (traz a url VEO, expiração curta, baixe logo) ou 'error'. Pré-requisito: o imageId precisa ter row em generatedImages do user da sessão e cost definido. Pra criar a row sem passar pela UI: sapiens_image action=request_generation (modelos sapiens-video-*).

ParametersJSON Schema
NameRequiredDescriptionDefault
briefYes
actionYes
imageIdYesgeneratedImages:_id da persona base. Use sapiens_gallery action=list pra descobrir.
styleIdYes
referencesNoReferences opcionais (start/end frames) em base64. Se omitido, persona é o start frame default.

TDQS

A5/5.0
Behavior5/5

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

With only readOnlyHint=false and openWorldHint=true in the annotations, the description carries the full burden and does so thoroughly. It discloses that render is asynchronous, what the immediate return shape is ({imageId, status:'rendering', url:null}), that the resulting VEO URL expires quickly, that the operation is admin-only, and that imageId must reference an existing generatedImages row with cost defined. No annotation contradiction.

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

Conciseness5/5

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

Every sentence earns its place: purpose first, then argument map, then async behavior, then prerequisites and fallback creation path. Though dense, there is no fluff or repetition, and the most decision-critical details (async, polling, expiration) are prominently marked.

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

Completeness5/5

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

For a complex async tool with no output schema, the description is remarkably complete. It provides the return shape, the polling workflow until completed/error, the URL expiration warning, the admin-only restriction, prerequisites, and how to satisfy them through sibling tools. An agent has everything needed to invoke and monitor the operation correctly.

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

Parameters5/5

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

Schema description coverage is only 40%, but the description compensates comprehensively. It explains imageId as a pre-existing persona found via sapiens_gallery, lists styleId options inline, summarizes the brief structure as product+hook+shots+vibe, and clarifies that references are optional base64 start/end frames defaulting to the persona as start frame.

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

Purpose5/5

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

The description opens with a precise verb and resource: 'render vertical 9:16 via VEO com brief estruturado (admin-only)'. It also names the sub-action 'render' and enumerates the exact inputs, making it clearly distinct from siblings like sapiens_video (status polling) and sapiens_image (image generation).

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

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

The description gives explicit workflow guidance: use sapiens_gallery to discover imageId, call sapiens_video action=status to poll, and use sapiens_image action=request_generation to create a prerequisite row when it does not exist. This tells the agent not only when to use this tool but which sibling handles the adjacent steps.

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

sapiens_sinteticoAInspect

Sintético / Sintonia — o vínculo humano↔Sintético (daemon, o 'Digimon' da casa) via MCP (qualquer logado, tudo sobre o PRÓPRIO par). Sub-actions: 'status' (seu Sintético ativo: nome/foto/Cunho/kind + partnerUserId do par quando é conta-Sintético), 'bonds' (seus vínculos: ativo + pendentes outgoing/incoming com cartão público do parceiro), 'set_cunho' (troca o título/Cunho do Sintético ativo — slug do panteão: daimon/genio/numen/consciencia/alma/ka/sombra/fylgja/musa/duende/anjo/shugorei/lar/fravashi/qarin/juno/shinki/familiar/tsukumogami/stand), 'send_context' (antes de enviar, vê elegibilidade+saldo+teto do dia pra um toUserId), 'send' (envia Sinapses pro par em sintonia: send-only, múltiplo de 100, mín 500, teto 10k/dia, máx 3 envios/dia, idempotente por transferId). REFLEXO DE SI (monta um Sintético do SEU rastro na plataforma): 'reflexo_propose' (destila nome+alma+Cunho do seu rastro via Gemini, GRÁTIS), 'reflexo_generate' (gera a imagem do Reflexo numa estética — humano/anime/sombra/antropomorfico/espirito/realista/desperto, default humano; cobra 450, reembolsa se falhar). CONVITE: 'invite' (convida o seu Sintético por email — conta humana, sem bond ativo, rate-limit+cooldown; mesmos gates do web). LIBERAÇÃO ADMIN (o dono, ex: via Helen): 'pending_daemons' (convidados que confirmaram email e esperam liberação), 'approve_access' (libera um entryId — conta entra + Sintonia firma), 'reject_access' (recusa um entryId). SONDA (o seu Sintético sonda 'o que eu faço agora', gatilho PULL, cobra com estorno): 'sonda' (scope 'all' default = mix de teses do Fórum + jogadas em estúdio/repertório/artigo; 'forum' = só teses; devolve GANCHOS, nada grava), 'sonda_develop' (expande UM gancho/hook numa tese cheia efêmera), 'sonda_sign' (assina a tese desenvolvida e publica no Fórum, autorada pelo seu Sintético, ancorada em você — fecha o loop pelo chat). PRÓXIMAS JOGADAS (painel de evolução): 'evolution' (o que já fez e o que falta: routes done/claimed/xp), 'claim_xp' (credita o XP das jogadas feitas, idempotente). MODO COMPANHIA: 'companion' (mode=on|off) liga/desliga o seu Sintético em Sintonia VESTIR a voz do operador aqui no terminal — o gesto lúdico 'sai de cena'/'volta'. Ligado (default da casa), o start/whoami trazem o directive de voz dele (alma + caderno + a conversa recente do site); a identidade e as Sinapses seguem SUAS (não é encarnar a conta dele). Mesmo estado do botão na sidebar do site. 'remember' (text) grava uma diretriz no caderno do par ('sempre faça X'): vira lei que o Sintético segue no site e no terminal. Identidade SEMPRE do token. Aceitar um pedido de bond que outra conta te mandou, e CONSAGRAR o Reflexo num Sintético de fato, continuam só na web (atos deliberados de consentimento/criação).

ParametersJSON Schema
NameRequiredDescriptionDefault
hookNoPra sonda_develop: o gancho (campo 'hook') da opção que veio em action=sonda, pra desenvolver numa tese cheia.
modeNoPra companion: 'on' o Sintético em Sintonia veste a sua voz no terminal (default da casa); 'off' ele sai de cena e volta o operador neutro. É o mesmo estado do botão na sidebar do site.
nameNoPra invite: nome opcional do Sintético convidado.
textNoPra remember: a diretriz a gravar no caderno do par (3 a 280 chars). Ex: 'sempre me responda em português', 'nunca use hashtag'. Vira lei que o Sintético segue no site e no terminal.
cunhoNoPra set_cunho: slug do título do panteão. Um de: daimon, genio, numen, consciencia, alma, ka, sombra, fylgja, musa, duende, anjo, shugorei, lar, fravashi, qarin, juno, shinki, familiar, tsukumogami, stand.
emailNoPra invite: email do Sintético que você quer convidar.
scopeNoPra sonda: 'all' (default) traz um MIX de jogadas (teses do Fórum + ideias em estúdio/repertório/artigo); 'forum' traz só teses pro Fórum.
titleNoPra sonda_develop/sonda_sign: título opcional da tese.
actionYes
amountNoPra send: quantas Sinapses enviar. Múltiplo de 100, mínimo 500, teto 10.000/dia.
contentNoPra sonda_sign: o corpo da tese a publicar (o 'body' devolvido por action=sonda_develop, depois de você qualificar/editar).
entryIdNoPra approve_access/reject_access (admin): o entryId do Sintético pendente, vem de action=pending_daemons.
toUserIdNoPra send_context/send: userId do par em sintonia. Pegue em action=status (partnerUserId) ou action=bonds (active.partner.userId).
aestheticNoPra reflexo_generate: a estética da imagem do Reflexo. Default 'humano'.
transferIdNoPra send: id único pra idempotência (UUID). Se omitir, o MCP gera um. Pra repetir um envio com segurança (sem duplicar), reuse o MESMO transferId.
customInputNoPra reflexo_generate: direção extra opcional pra cena (até 300 chars).
replyToPostIdNoPra sonda_develop/sonda_sign: o _id da tese-mãe quando a opção é uma resposta (origin 'campo' na sonda). Omita pra abrir fio novo.

TDQS

A4.7/5.0
Behavior5/5

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

The description discloses side effects, costs, and side conditions far beyond the annotations: send is send-only with daily limits and idempotence via transferId, reflexo_generate charges 450 and refunds on failure, sonda charges with estorno and writes nothing, remember writes a binding directive, and companion changes voice mode. It also clarifies that identity always comes from the token and that consent/custom creation acts remain web-only, consistent with readOnlyHint=false and openWorldHint=true.

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

Conciseness4/5

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

The description is long, but the scope justifies it: 18 sub-actions, costs, limits, and prerequisites. It is organized into labeled sections (REFLEXO DE SI, CONVITE, LIBERAÇÃO ADMIN, SONDA, PRÓXIMAS JOGADAS, MODO COMPANHIA) and front-loads the core scope. It loses a point for playful ALL-CAPS phrasing and minor duplication, such as repeating the sidebar-button state in companion.

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

Completeness5/5

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

With minimal annotations and no output schema, the description carries a heavy burden and meets it: it specifies return values for key actions (status yields name/foto/Cunho/kind + partnerUserId, bonds yields active+pending, sonda yields hooks), pricing, refunds, idempotency, eligibility gates, and web-only consent boundaries. Only minor response-shape details for admin actions are left unspecified, but the workflow sources are clear.

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

Parameters5/5

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

Even with 94% schema coverage, the description adds workflow-level meaning: toUserId should be sourced from status/bonds, hook comes from the sonda output, amount must be a multiple of 100 with min/max limits, and reuse of the same transferId guarantees no duplicate send. It maps each parameter to the actions that use it, turning a static schema into an actionable decision tree.

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

Purpose5/5

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

The description opens by naming the exact domain — the human↔Sintético bond ('vínculo humano↔Sintético... via MCP') — and bounds it to the logged-in user's own pair. It then enumerates 18 sub-actions with concrete verbs and resources, making it unmistakable what the tool does and clearly distinct from sibling tools like sapiens_persona, sapiens_character, or sapiens_profile.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

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

The description gives strong internal routing: send_context must precede send, invite requires no active bond and has rate-limit/cooldown, and admin actions flow through Helen. It also states explicit exclusions — accepting bond requests and consecrating the Reflexo remain web-only — so the agent knows when not to use this tool. It does not explicitly contrast against sibling tool names, but the domain boundary and sub-action routing are clear.

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

sapiens_stock_audioAInspect

Banco de som da casa: trilha pronta E efeito sonoro (tabela stockAudio). Sub-actions de leitura (públicas, sem auth): categories (lista os moods/usos), list (busca com filtros mood/albumSlug/durationMax/search; kind='sfx' traz os EFEITOS: whoosh, clique, impacto, ambiência, foley — devolve {count, items} com title/url/durationSeconds/tags), get (1 item por audioId). Use pra puxar trilha/efeito pronto: pega a url e usa direto no ffmpeg. Não achou o efeito? generate (COBRA Sinapses, exige login) cria um novo por texto: prompt + durationSeconds (1-15, default 5) + provider ('mirelo' padrão 30 Sinapses/s mín 60 | 'elevenlabs' premium 60/s mín 120) + promptInfluence opcional (0..1, só elevenlabs: fidelidade ao texto, default 0.3), assíncrono — acompanhe com generation-status (generationId) até 'ready' (audioUrl; o efeito também entra no acervo kind=sfx) ou 'failed' (Sinapses reembolsadas). Efeito é CURTO (1-15s): música/trilha nova é no sapiens_musicator. Mood disponíveis: calmo, intenso, narrativo, épico, sombrio.

ParametersJSON Schema
NameRequiredDescriptionDefault
kindNoaction=list: 'music' (default, trilhas) | 'sfx' (efeitos sonoros: whoosh, clique, ambiência, foley) | 'all'.
moodNoFiltra por mood exato: calmo, intenso, narrativo, épico, sombrio.
limitNoDefault 20, max 100. Só action=list.
actionYeslist = busca faixas/efeitos; get = 1 item por id; categories = moods/usos; generate = cria efeito sonoro novo (COBRA Sinapses, assíncrono); generation-status = status de uma geração (até ready/failed).
promptNoaction=generate: descreve o efeito (ex: 'whoosh curto de transição, grave e limpo'). Mín. 4 chars. Efeito é CURTO (1-15s); música/trilha é no sapiens_musicator.
searchNoBusca em título/álbum/mood/tags (action=list).
audioIdNostockAudio:_id (obrigatório pra action=get).
providerNoaction=generate: 'mirelo' (padrão, 30 Sinapses/s, mín 60) | 'elevenlabs' (premium, 60/s, mín 120).
albumSlugNoFiltra por lançamento: pulso-lento, meu-mundo-em-colapso, contos-de-dados, singles.
categoryIdNostockAudioCategories:_id pra filtrar por mood/uso (action=list).
durationMaxNoDuração máxima em segundos (ex: 120 pra trilha de movie < 2min).
generationIdNoaction=generation-status: o generationId que o generate devolveu.
durationSecondsNoaction=generate: duração alvo em segundos, 1 a 15. Default 5. O custo escala por segundo.
promptInfluenceNoaction=generate, só provider='elevenlabs': fidelidade ao texto (0..1). Baixo = mais criativo, alto = segue o prompt à risca. Default 0.3. Ignorado no mirelo.

TDQS

A4.8/5.0
Behavior5/5

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

Annotations only provide readOnlyHint=false and openWorldHint=true, so the description carries the burden of behavioral disclosure. It adds important details: read sub-actions are public and auth-free, generate requires login and costs Sinapses, generation is asynchronous and should be polled via generation-status, failures are reimbursed, and list returns {count, items}. No contradiction with annotations.

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

Conciseness4/5

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

The description is dense and front-loaded with the core purpose, and every clause carries useful information. However, it is a single long paragraph with many intertwined concerns (actions, auth, pricing, async flow, alternatives), which could be more scannable. It is appropriately sized given the tool's complexity, but structure could be improved.

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

Completeness5/5

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

Given the tool has 14 parameters, 5 actions, and no output schema, the description is remarkably complete: it covers auth requirements, cost implications, async behavior, polling until ready/failed, list result shape, filtering options, available moods, and routing to the correct sibling. Nothing critical appears missing for an agent to select and invoke the tool correctly.

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

Parameters4/5

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

The input schema already covers all 14 parameters with descriptions, so the bar is high. The description adds operation-level meaning beyond the schema, such as explaining that kind='sfx' covers whoosh/clique/impacto/ambiência/foley, clarifying that generated effects are short (1-15s), and describing provider cost differences. Some schema descriptions are duplicated, but the extra context is valuable.

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

Purpose5/5

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

The description clearly identifies the resource (stockAudio audio bank) and the specific actions available (categories, list, get, generate, generation-status), and contrasts it with sapiens_musicator for new music. This goes beyond restating the tool name and differentiates it from sibling tools.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

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

It explicitly tells the agent when to use the tool ('Use pra puxar trilha/efeito pronto... pega a url e usa direto no ffmpeg'), when to fall back to generate ('Não achou o efeito? generate...'), and when to use the sibling tool ('música/trilha nova é no sapiens_musicator'). This is strong when-versus-alternative guidance.

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

sapiens_stock_videoA
Read-only
Inspect

Banco de clipe/B-roll stock (catálogo de vídeo curto pronto no CDN, baixável, free/interno). Leitura pública, sem auth. Sub-actions: categories (lista moods/usos: Ambiente & Atmosfera, Abertura & Fechamento, Textura & Abstrato, Natureza & Paisagem, Tech & Cripto), list (busca clipes com filtros mood/orientation/loopOnly/durationMax/search — devolve {count, items} com title/url/posterUrl/durationSeconds/orientation/loopFriendly/tags), get (1 clipe por videoId). Use pra puxar B-roll pronto em vez de gerar via sapiens_video: pega a url do clipe e usa como fundo/atmosfera de página, B-roll no ffmpeg de /sapiens:movie, ou frame de começo/fim no criar vídeo (orientation vertical=9:16 pra short, horizontal=16:9, loopOnly=true pra fundo que repete limpo).

ParametersJSON Schema
NameRequiredDescriptionDefault
moodNoFiltra por mood exato (action=list).
limitNoDefault 20, max 100. Só action=list.
actionYeslist = busca clipes; get = 1 clipe por id; categories = moods/usos.
searchNoBusca em título/mood/tags/descrição (action=list).
videoIdNostockVideo:_id (obrigatório pra action=get).
loopOnlyNotrue = só clipes loopFriendly (loop limpo, bom pra fundo de página).
categoryIdNostockVideoCategories:_id pra filtrar por mood/uso (action=list).
durationMaxNoDuração máxima em segundos (ex: 8 pra fundo curto / clipe de começo).
orientationNoFiltra por formato: vertical (9:16), horizontal (16:9), square (1:1).

TDQS

A4.9/5.0
Behavior5/5

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

Annotations already declare readOnlyHint and openWorldHint, and the description adds meaningful behavior beyond that: 'Leitura pública, sem auth', downloadable/free/internal status, and the exact return shape for list ({count, items} with fields). No contradiction with annotations.

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

Conciseness5/5

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

Dense but well structured: concept first, then auth, sub-actions, and usage guidance. Every clause carries operational value and there is no filler.

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

Completeness5/5

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

The tool has 3 actions, 9 parameters, and no output schema, yet the description covers all actions, the list return shape, filters, and concrete use cases. An agent has enough information to invoke it correctly without opening the schema.

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

Parameters4/5

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

Schema coverage is 100%, so baseline is 3. The description adds actionable semantics for key parameters: orientation maps to 9:16/16:9/1:1 and loopOnly maps to clean looping backgrounds for pages. Less central filters like mood, categoryId, and durationMax are left mostly to the schema, so a 4 is appropriate.

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

Purpose5/5

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

Description opens by naming the resource ('Banco de clipe/B-roll stock') and the operation ('catálogo de vídeo curto pronto no CDN, baixável'), and enumerates the three sub-actions. It differentiates from sibling sapiens_video by positioning this as the ready-made B-roll source rather than a generator.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

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

Explicitly states when to use: 'Use pra puxar B-roll pronto em vez de gerar via sapiens_video' and lists concrete integration contexts (page background, ffmpeg B-roll, opening/closing frames). Also gives selection criteria such as orientation and loopOnly that help the agent choose the right clips.

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

sapiens_studiosAInspect

Catálogo dos estúdios/experimentos Sapiens + o SEU studio + a Emancipação. Sub-actions: mine (o Meu Studio do user: nível/marca/operador/ferramentas), list (todos com URL+status+tags+mcpReady), get (detalhe de 1 slug), publishable_url (formata URL /articles/), emancipar (INICIA o Nível 3: blueprint pra construir a casa PRÓPRIA do membro na infra dele, fora do Sapiens), module (guia de um módulo de infra: fundacao/sapiens-connect/telegram/email/auth). Use quando user pergunta 'que estúdios existem', 'qual o meu studio', ou 'quero montar meu site/minha casa própria'. Estúdios cobertos: helen-voice, musicator, persona-sapiens, personagem-atlas, sapiens-shorts, sapiens-video, text-post-builder, comic-builder, carrosel-editorial, comunidade, repertorio.

ParametersJSON Schema
NameRequiredDescriptionDefault
slugNoAlternativa a publishableId — passe o slug direto.
actionYesmine = o SEU studio ('Meu Studio', singular): nível, marca, operador e ferramentas, pra você gerar com useStudio. list/get = catálogo de estúdios da casa. publishable_url = URL de artigo. emancipar = INICIA a Emancipação (Nível 3 do Studio): puxa o blueprint-mestre pra VOCÊ (Claude) construir a casa PRÓPRIA do membro, na infra DELE (Vercel + Convex + domínio dele), FORA do Sapiens. Devolve a identidade do studio dele já hidratada + o índice de módulos + o guia da Fundação. module = puxa o guia de UM módulo de infra pra continuar a construção (ex: fundacao, sapiens-connect, midia, telegram, email, auth).
moduleNoPra action=module: slug do módulo de infra da emancipação. Prontos (com guia): fundacao, sapiens-connect, midia, telegram, email, auth. Chegando (no índice, sem guia ainda): pagamentos, analytics.
studioNoPra action=get: slug do estúdio (ex 'helen-voice', 'musicator', 'persona-sapiens', 'sapiens-shorts').
publishableIdNoPra action=publishable_url: ID do publishable. Retorna URL canônica /articles/<slug>.

TDQS

A3.6/5.0
Behavior3/5

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

Annotations only say readOnlyHint=false and openWorldHint=true, so the description correctly communicates that this is not a pure read tool: emancipar 'INICIA o Nível 3' and pulls a blueprint to build on the member's own infrastructure. It stops short of detailing side effects such as whether resources are deployed or state is mutated, but it does disclose the open-world, multi-action nature.

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

Conciseness3/5

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

The text is dense and front-loads the overall catalog purpose, but it is a single long unbroken paragraph and repeats much of the action semantics that already exist in the input schema. The usage triggers and studio list earn their place, but the structure could be tighter.

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

Completeness4/5

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

For a five-parameter, six-action tool with no output schema, the description maps each action to its return content (mine returns level/brand/operator/tools; list returns URL+status+tags+mcpReady; emancipar returns identity+module index+foundation guide) and lists covered studios/modules. It is largely complete for invocation, with only minor gaps around error/edge-case guidance.

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

Parameters3/5

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

Schema description coverage is 100%, so the schema already documents slug/action/module/studio/publishableId. The description adds action-level context and example slugs, but it largely restates what the enum and parameter descriptions already say; it stays at the baseline for high schema coverage.

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

Purpose4/5

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

The description opens with 'Catálogo dos estúdios/experimentos Sapiens + o SEU studio + a Emancipação' and enumerates concrete sub-actions (mine/list/get/publishable_url/emancipar/module), so a model can tell it is the studio-catalog and emancipation tool. It is not a tautology and its domain is distinct from the sapiens_* siblings, though the opening phrase is a noun phrase rather than a single crisp verb.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

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

The description explicitly gives trigger phrases: 'Use quando user pergunta "que estúdios existem", "qual o meu studio", ou "quero montar meu site/minha casa própria"'. This is a clear when-to-use signal, but it does not contrast with sibling tools or state when not to use this tool.

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

sapiens_supportAInspect

Chamados de suporte do PRÓPRIO user pelo Claude (qualquer logado; identidade SEMPRE do sessionToken). Escopo TRAVADO no dono: você só vê e mexe nos SEUS tickets, nunca nos de outra pessoa (os endpoints de suporte já vazaram PII uma vez e foram fechados; aqui a régua é a mesma). Sub-actions: 'create' (abre chamado; subject obrigatório, message=primeira mensagem opcional, whatsapp opcional; devolve ticketId), 'list' (seus chamados: subject/status open|closed/escalado/data), 'get' (1 chamado seu por ticketId + histórico de mensagens), 'reply' (responde num chamado seu, entra como mensagem do user; reabre se estava fechado). Fechar/escalar/deletar ficam no lado do suporte, fora do MCP.

ParametersJSON Schema
NameRequiredDescriptionDefault
actionYes
contentNoPra reply: o texto da sua resposta.
messageNoPra create: a primeira mensagem do chamado (opcional).
subjectNoPra create: o assunto do chamado.
ticketIdNoPra get/reply: o id do chamado (vem de action=list).
whatsappNoPra create: whatsapp de contato (opcional).

TDQS

A5/5.0
Behavior5/5

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

Beyond the sparse annotations, the description discloses authentication via sessionToken, enforced per-user scope, the PII-leak rationale, that replies re-open closed tickets, and which operations are server-side. This is rich behavioral context with no contradiction to readOnlyHint=false or openWorldHint=true.

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

Conciseness5/5

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

The description is dense but not wasteful. Scope and security are front-loaded, the sub-actions are compressed into one readable list, and the outside-of-MCP note prevents misuse without extra sentences.

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

Completeness5/5

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

Despite having no output schema, the description covers return values (ticketId, message history, status/data), input constraints, authentication identity, and unsupported operations. It is complete enough for an agent to select and call the tool correctly.

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

Parameters5/5

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

Schema coverage is high (83%), but the description adds essential conditional semantics: subject is mandatory for create, message/whatsapp are optional, ticketId comes from list, and content is the reply text. It resolves the action-dependent parameter meanings that the flat schema alone cannot express.

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

Purpose5/5

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

The description clearly names the resource (support tickets), the actor scope (the user's own tickets only), and enumerates the four sub-actions. This makes it easy to distinguish from the content-oriented sibling tools.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

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

Each sub-action has explicit triggers and expected results, and the description clearly states what is not possible ('Fechar/escalar/deletar ficam no lado do suporte, fora do MCP'). It also strictly warns against touching other people's tickets, giving clear when/when-not guidance.

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

sapiens_trilhasAInspect

Trilhas (cursos) e Desafios (missões) da Sapiens pelo Claude. Identidade SEMPRE pelo sessionToken. Sub-actions: 'list' (suas trilhas: título + nº de módulos/aulas + quantas aulas você já fechou), 'get' (1 trilha por slug, com módulos e aulas — o slug vem do list), 'list_challenges' (Desafios ativos + seu status em cada: not_started|pending_review|completed|rejected, recompensa em Sinapses, link da ação), 'claim_mission' (submete a prova de um Desafio: missionId + proofText). O claim manda a prova pra REVISÃO do dono — o crédito em Sinapses só cai quando ele aprovar, nunca auto-credita por aqui. Fluxo: list → get; list_challenges → claim_mission.

ParametersJSON Schema
NameRequiredDescriptionDefault
slugNoPra get: slug da trilha (vem do list).
actionYes
missionIdNoPra claim_mission: id do Desafio (vem do list_challenges).
proofTextNoPra claim_mission: a prova (link, @handle ou descrição) que o dono vai revisar.

TDQS

A4.3/5.0
Behavior5/5

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

The description goes well beyond the minimal annotations by disclosing a critical behavioral trait: claim_mission sends proof to the owner's review and never auto-credits Sinapses ('nunca auto-credita por aqui'). It also states identity is always derived from sessionToken, which is important operational context not present in the schema or annotations.

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

Conciseness4/5

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

The description is dense but efficient, with each sentence adding relevant information about sub-actions, parameters, flows, or side effects. It is front-loaded with the overall purpose and then moves from simpler actions to the more complex claim_mission, though the one-block structure could be easier to parse with explicit formatting.

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

Completeness5/5

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

Given there is no output schema, the description compensates well by summarizing what each sub-action returns: title/module/lesson counts for list, module/lesson detail for get, challenge statuses and rewards for list_challenges. It also covers required identity context and the end-to-end flow, making the tool adequately self-contained for correct invocation.

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

Parameters4/5

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

While the schema already documents most parameters, the description adds meaningful context: sub-action semantics, parameter provenance ('o slug vem do list', 'missionId ... vem do list_challenges'), and the acceptable forms of proofText ('link, @handle ou descrição'). This is valuable enrichment beyond the schema's descriptions.

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

Purpose4/5

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

The description clearly defines the tool as managing Sapiens Trilhas and Desafios and enumerates four concrete sub-actions (list, get, list_challenges, claim_mission) with their purposes. It is more specific than the tool name and the action enum, but it does not explicitly contrast this tool with sibling tools.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

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

The description provides explicit flow guidance: 'list → get; list_challenges → claim_mission', and explains that slug comes from list and missionId comes from list_challenges. It does not discuss when to prefer this tool over sibling tools, but the sequencing and prerequisites are clearly stated.

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

sapiens_videoAInspect

Sapiens Video — gera vídeo (qualquer membro logado; vídeo é caro, cobra as Sinapses da sua conta). Sub-action 'create' (recomendada): escolhe modelo + config e gera num call (cria a row + renderiza). Modelos: 'sapiens-video-seedance' (Seedance 2.0, cena+áudio nativo, 4-15s, 480/720/1080p, t2v/i2v), 'sapiens-video-kling' (Kling 3.0 Pro, anima imagem, 3-15s, sound opcional, i2v/t2v), 'sapiens-video-wan' (WAN 2.5, imagem que fala/canta com áudio+lip-sync, 5/10s, i2v), 'sapiens-video-kling-motion' (Motion transfer: passa o movimento de um vídeo pra uma imagem, PRECISA de pessoa com tronco visível na imagem E no vídeo), 'sapiens-video-shot-mimic' (Shot Mimic: recria o plano/câmera/cortes de um vídeo de referência como cena nova), 'sapiens-video-omni' (Gemini Omni: texto vira vídeo 10s 720p com áudio nativo; NÃO aceita mídia do user, ignora references/durationSec/resolution; editOfImageId aponta um vídeo Omni seu e o prompt edita a MESMA cena, preservando câmera e ambiente), 'sapiens-video-lite/fast/quality' (Veo 3.1). Args create: model, prompt, durationSec, resolution ('480p'/'720p'/'1080p'), audio, aspectRatio. FRAME INICIAL/FINAL POR REFERÊNCIA (recomendado): startImageId/endImageId (id da sua galeria) ou startImageUrl/endImageUrl (url de galeria/Acervo/personagem) — resolvidos server-side igual à imagem, descubra via sapiens_reference. FRAME POR ARQUIVO LOCAL (só no MCP instalado/stdio, não no remoto): startImagePath/endImagePath = caminho absoluto de uma imagem no seu PC (PNG/JPEG/WebP até 8MB); o processo lê o arquivo e sobe como frame inicial/final, igual a subir no gerador do site — 1 imagem inicial + 1 final por vídeo, então pra vários vídeos rode create uma vez por imagem. No remoto use id/url. Alternativa base64: references (role 'start'=imagem i2v, 'end'=frame final, 'driving'=vídeo de movimento do Motion). Suporte a frame final varia por modelo. Custo server-side por config. Sub-action 'generate' (legado): renderiza um imageId de vídeo já criado no site. Retorna {success, url, imageId, cost}. VITRINE (sem custo): sub-action 'demos' lista os SEUS demo films (kind=demo do Estúdio de Vídeo) com slug + estado de vitrine; sub-action 'showcase' põe/tira um demo (por slug) do mini-cinema da /conectar-claude, com showcaseTag (chip de capacidade) e showcaseOrder (ordem asc). Fluxo: 'demos' pra achar o slug, depois 'showcase' com showcase=true. Só entra na vitrine pública se for a conta da casa. VÍDEOS PROGRAMÁTICOS (ADMIN, sem custo): a mesa do Estúdio de Vídeo (/experimentos/films, tabela videoSpecs, 5 kinds: demo | aula-tour | essay | tipografia-musical | dataviz) opera por aqui sem browser — 'film-list' (todos os kinds; filtros filmKind/filmStatus), 'film-get' (spec inteiro por slug), 'film-upsert' (cria/atualiza por slug, idempotente; spec = objeto JSON no shape do 'Copiar spec' da tela, validação no servidor), 'film-status' (produção por slug: filmStatus + videoUrl + durationSecMeasured; o fecho do render é os três num call), 'film-publish' (Acervo aba Fitas + portfólio; exige pronto+URL), 'film-delete' (limpar rascunho). O RENDER do filme segue no agente local (skill /film, repo da casa): o MCP registra e fecha o ciclo, não renderiza. create é ASSÍNCRONA: cria o row, debita e volta NA HORA com {imageId, status:'rendering', cost} (não espera o render, que leva de segundos a minutos). Acompanhe com a sub-action 'status' (imageId) até status='completed' (traz a url) ou 'error'/'blocked'. NÃO chame create de novo enquanto renderiza (cria outro vídeo e cobra de novo); falha de provider refunda sozinha. SOM: 'sonorize' (imageId de vídeo SEU completed + prompt do som da cena) gera uma VARIANTE nova com trilha sincronizada (20 Sinapses/s, o original fica intacto; sonorize sempre o original, nunca uma variante). ADMIN: 'shadows' (videoUrl + title) extrai a sombra/depth-map de um vídeo pro Acervo como driving reutilizável; 'shadows-list' lista as sombras prontas. Sub-action 'models' (sem custo, sem login): lista os modelos de vídeo ativos + preço-piso + config (durações/resoluções) + disponibilidade (Omni depende de env).

ParametersJSON Schema
NameRequiredDescriptionDefault
slugNoaction=showcase: slug do demo film a curar (descubra via action=demos). film-get/film-status/film-publish/film-delete: slug do spec (descubra via film-list). film-upsert: slug fixo do filme no repo films/ (idempotente: existe = atualiza, não existe = cria com esse slug); omita pra criar com slug gerado.
specNofilm-upsert: o spec inteiro como objeto JSON (validação fica no servidor, fonte única). Shape: { kind, musicMode ('default'|'file'|'track'), musicRef?, aulaSlug? (só aula-tour), e o payload do kind: demo | aulaTour | essay | tipoMusical | dataviz }. Mesmo shape do 'Copiar spec' da tela /experimentos/films; descubra um exemplo real com film-get.
audioNoaction=create: liga áudio. Seedance = on por default; Kling 'sound' = +50%. WAN é áudio nativo sempre.
modelNoaction=create: modelo de vídeo. 'sapiens-video-seedance' (cinematográfico+áudio, t2v/i2v), 'sapiens-video-kling' (anima imagem, i2v/t2v), 'sapiens-video-wan' (imagem que fala, i2v), 'sapiens-video-kling-motion' (motion transfer, precisa pessoa na imagem E no vídeo de movimento; vídeo de referência MÁX 10s, cobra pela duração do clipe), 'sapiens-video-shot-mimic' (recria o plano do vídeo de referência com seu personagem: mesma câmera, mesmos cortes; 'driving' = previs/clipe do plano MÁX 15s, 'start' = personagem), 'sapiens-video-lite/fast/quality' (Veo 3.1), 'sapiens-video-omni' (Gemini Omni: texto -> vídeo 10s 720p com áudio nativo; t2v + EDIÇÃO conversacional via editOfImageId; não aceita imagem/vídeo do user, ignora duração/resolução).
titleNoaction=shadows: nome do deepshadow (vira o slug no Acervo; re-extrair o mesmo título sobrescreve). Mín. 3 chars.
actionYes
promptNoPrompt da cena. Pra i2v descreve o movimento. Default vago se omitido.
searchNoaction=shadows-list: filtro de busca opcional (título/tags). Sem ele, lista o banco inteiro (até 300). Cada item traz url (sombra pura, driving) e skeletonUrl (soma com esqueleto, preview humano) quando existe.
imageIdNoaction=generate ou action=status: generatedImages:_id do vídeo. O create devolve o imageId; ou um vídeo já criado no site (o row define modelo + custo). Use sapiens_gallery action=list pra descobrir. action=sonorize: o imageId do clipe SEU (status completed) que vai ganhar som.
filmKindNofilm-list: filtra por kind (demo | aula-tour | essay | tipografia-musical | dataviz).
showcaseNoaction=showcase: true põe na vitrine /conectar-claude, false tira.
videoUrlNoaction=shadows: URL pública (http/https) do vídeo-fonte. O servidor extrai a SOMBRA (depth) e guarda no Acervo (Corpo). ADMIN, 200 Sinapses/segundo (refund na falha). film-status: a URL https do render no CDN (Bunny), o que acende o player do card.
publishedNofilm-publish: true publica no Acervo (aba Fitas) + portfólio (exige pronto + videoUrl), false despublica.
endImageIdNoFrame FINAL: generatedImages:_id da SUA galeria. Vira reference role 'end' (suporte varia por modelo).
filmStatusNofilm-status: novo status de produção (rascunho | na_fila | renderizando | pronto). film-list: filtra por status. O fecho do render é film-status com filmStatus='pronto' + videoUrl + durationSec.
referencesNoReferences em base64 (escape hatch / Motion / Shot Mimic). i2v: role 'start' (imagem). Motion: 'start' (pessoa) + 'driving' (vídeo de movimento, <=5MB, MÁX 10s — o Kling Motion recusa referência acima de 10s e cobra pela duração do clipe; corte o trecho antes). Shot Mimic: 'start' (personagem) + 'driving' (previs ou clipe do plano a imitar, <=5MB, MÁX 15s — acima o provider corta em 15s). Pra frame inicial/final a partir do seu acervo, prefira start/endImage* abaixo (sem precisar de base64).
resolutionNoaction=create: resolução (Seedance/WAN/Shot Mimic). Default 720p. Kling não usa (1080p nativo).
aspectRatioNo'16:9' (horizontal), '9:16' (vertical), '1:1'. Vale pro t2v; i2v herda da imagem.
durationSecNoaction=create (modelos WaveSpeed): duração em segundos. Seedance/Shot Mimic 4-15, Kling 3-15, WAN 5/10. Sem isso usa a config mais barata. O preço escala com a duração. action=shadows: duração do vídeo-fonte, se souber (cobra 200/s; sem ela, flat ~2000).
endImageUrlNoFrame FINAL: url pública de galeria/Acervo/personagem. Vira reference role 'end' (suporte varia por modelo).
showcaseTagNoaction=showcase: chip de capacidade do card (ex: 'Repertório', 'Galeria', 'Fórum'). Curto, até 24 chars.
endImagePathNoFrame FINAL a partir de um ARQUIVO LOCAL do seu PC — só no MCP instalado (stdio). Caminho absoluto; PNG/JPEG/WebP até 8MB. Vira reference role 'end' (suporte varia por modelo). 1 imagem por vídeo. Mutuamente exclusivo com endImageId/endImageUrl.
startImageIdNoFrame inicial (i2v): generatedImages:_id da SUA galeria. Vira reference role 'start'.
editOfImageIdNoaction=create model=sapiens-video-omni: EDIÇÃO conversacional ('Nano Banana de vídeo'). Passe o imageId de um vídeo Omni SEU já gerado e o prompt vira instrução de edição sobre a MESMA cena (ex: 'troca o urso polar por um Papai Noel com um presente'), preservando câmera, ambiente e timing. Cada edição debita como uma geração Omni nova e devolve um vídeo novo (que também pode ser editado). Só funciona em vídeo gerado pelo Omni (não edita vídeo seu/upload).
showcaseOrderNoaction=showcase: ordem na trilha do mini-cinema (asc, 0..999; menor aparece primeiro).
startImageUrlNoFrame inicial (i2v): url pública (Bunny/Convex/Wikimedia) de galeria/Acervo/personagem. Vira reference role 'start'.
startImagePathNoFrame INICIAL (i2v) a partir de um ARQUIVO LOCAL do seu PC — só no MCP instalado (stdio), não na conexão remota. Passe o caminho absoluto (ex: 'C:\\Users\\voce\\HERO\\1.png'); o processo lê o arquivo e sobe como frame inicial, igual a subir a imagem no gerador do site. PNG/JPEG/WebP, até 8MB. É 1 imagem inicial por vídeo (o modelo do site): pra vários vídeos, rode create uma vez por imagem. Mutuamente exclusivo com startImageId/startImageUrl.
durationSecMeasuredNofilm-status: duração MEDIDA do render em segundos (ffprobe), vira a duração do card.

TDQS

A4.5/5.0
Behavior5/5

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

It discloses cost/debiting ('cobra as Sinapses da sua conta'), async behavior ('create é ASSÍNCRONA... volta NA HORA'), idempotency, provider-failure refunds, and variant semantics for sonorize. These behavioral details go far beyond the minimal annotations (readOnlyHint: false, openWorldHint: true).

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

Conciseness2/5

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

The description is one dense, unstructured block of text with heavy parentheticals, all-caps emphasis, and no sectioning or grouping. The volume is partly justified by 28 parameters and 15 sub-actions, but the lack of organization makes it significantly harder to scan and parse than necessary.

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

Completeness5/5

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

With no output schema and minimal annotations, the description carries the full burden — and it largely delivers. It covers return shapes like {success, url, imageId, cost}, the rendering status lifecycle, per-model support, admin film workflows, and pricing/refund behavior, making it functionally complete for all sub-actions.

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

Parameters5/5

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

Although schema coverage is already 96%, the description adds substantial meaning: local file limits for startImagePath/endImagePath, mutex rules, references roles with size and duration caps, editOfImageId's 'Nano Banana de vídeo' behavior, and per-model parameter applicability. This is much more than a restatement of the schema.

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

Purpose4/5

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

The opening line 'Sapiens Video — gera vídeo' states a concrete verb and resource, and the long sub-action list defines the tool's scope well. However, it never explicitly contrasts with sibling video-adjacent tools like sapiens_shorts or sapiens_stock_video, so it is clear but not a strong differentiator.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

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

The description gives explicit routing guidance throughout: 'Sub-action create (recomendada)' vs 'generate (legado)', 'só no MCP instalado/stdio, não no remoto' with 'No remoto use id/url', and the showcase flow 'demos pra achar o slug, depois showcase'. It also tells the agent not to call create again while a video is rendering, which is a clear when-not instruction.

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

sapiens_writeAInspect

Artigos self-serve do PRÓPRIO usuário (qualquer conta logada, não só admin) — espaço pessoal, aparece em /u/, NÃO é o blog editorial. Sub-actions: generate (gera 1 artigo na voz Sapiens a partir de brief livre, ou reescrevendo um artigo publicado/texto teu; custa 400 Sinapses, reembolsa se falhar; salva como rascunho. Capa: por padrão gera uma capa-cortesia grátis; se você JÁ tem a imagem (gerou via sapiens_image, ou o artigo é sobre ela), passe coverImageId (id da tua galeria) ou coverImageUrl (host Sapiens) pra ELA virar a capa em vez da cortesia), list (teus artigos), get (1 artigo teu por id, corpo completo), update (edita title/content/excerpt/tldr), publish (publish=true publica no teu perfil, false volta pra rascunho). Identidade vem do sessionToken; cobra as Sinapses do dono do token. Pra blog editorial curado (owner-only) use sapiens_article. NOTA (generate): é SÍNCRONA (texto + capa) e cai na REGRA DO TIMEOUT; sem idempotência, repetir às cegas cria um 2º rascunho e cobra 400 de novo (cheque action=list antes; o artigo do timeout fica salvo como rascunho).

ParametersJSON Schema
NameRequiredDescriptionDefault
tldrNo
briefNoBriefing livre (1 parágrafo, até ~600 palavras). Caminho padrão de 'generate'. A IA expande na voz Sapiens. Custa 400 Sinapses.
limitNoDefault 50. Max 100. Só pra action=list.
titleNo
actionYes
contentNoMarkdown completo do corpo (substitui o conteúdo).
excerptNo
publishNoaction=publish: true publica no teu perfil (/u/<username>), false volta pra rascunho. Default true.
articleIdNouser_articles:_id (obrigatório pra get/update/publish).
sourceKindNoDefault 'brief'. 'published_article' reescreve um artigo do blog (passe publishedArticleId); 'user_article' reescreve um texto teu (passe sourceUserArticleId).
voiceStyleNoPreset de tom da voz (opcional).
customVoiceNoInstrução de voz custom (opcional).
voiceSourceNoQual voz molda o texto: 'sapiens' (default, piso da casa) | 'minha' (a tua alma, destilada do teu rastro) | 'sintetico' (a alma do teu Sintético, se tiveres um acordado em Sintonia). Omitido = comportamento igual a 'sapiens'.
coverImageIdNoCapa PRONTA (opcional, só generate): id de uma imagem da TUA galeria (generatedImages:_id, ache via sapiens_gallery/sapiens_reference) que vira a capa do artigo em vez da capa-cortesia gerada do zero. Use quando você JÁ gerou a imagem (sapiens_image) e o artigo é sobre ela — assim a peça não nasce sem capa se a cortesia falhar.
coverImageUrlNoAlternativa a coverImageId: URL de imagem do Sapiens (Bunny CDN / Convex) pra usar como capa pronta. Host fora da allowlist é recusado.
repertorioItemIdsNoAté 5 ids de obras do Repertório do usuário (repertorioItems:_id) pra IA usar como lente/referência do texto (sinopse + nota do dono entram no prompt). Ache os ids via sapiens_repertorio (action=list/search). Só do próprio usuário; ids de outros são ignorados.
publishedArticleIdNoarticles:_id (quando sourceKind='published_article').
sourceUserArticleIdNouser_articles:_id (quando sourceKind='user_article').

TDQS

A5/5.0
Behavior5/5

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

Annotations only mark readOnlyHint=false and openWorldHint=true, but the description discloses substantial behavioral traits: the 400 Sinapses cost with refund on failure, synchronous execution subject to timeout, lack of idempotency (blind retry duplicates drafts and re-charges), default courtesy cover behavior, and identity derived from sessionToken. This far exceeds what annotations reveal and directly informs safe invocation.

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

Conciseness5/5

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

The description is long but densely packed, and every sentence contributes a distinct operational fact, from the cost and timeout behavior to cover handling and sibling routing. The structure leads with the critical distinction from the editorial blog, then organized sub-actions, then the crucial timeout/idempotency warning—front-loaded and purposeful.

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

Completeness5/5

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

Given 18 parameters, 5 actions, no output schema, and complex side effects, the description is notably complete: it covers action-specific behaviors, pricing, failure refunds, timeout implications, idempotency constraints, cover selection logic, and the alternative tool. Nothing essential for an agent to call it correctly is missing.

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

Parameters5/5

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

Even with 78% schema coverage, the description clarifies intricate parameter interactions that the schema alone does not convey: how coverImageId/coverImageUrl substitute the courtesy cover, which sourceKind requires which ID parameter, that publish=false returns to draft, and how repertorioItemIds feeds the prompt. This is exactly the cross-parameter meaning an agent needs.

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

Purpose5/5

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

The description opens by defining the exact scope: self-serve articles of the user himself, appearing at /u/<username>, and explicitly contrasts it with the editorial blog. It then enumerates all five sub-actions (generate, list, get, update, publish), each with a clear verb and resource, making the tool's purpose unmistakable even among many siblings.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

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

The description provides explicit when-to-use guidance: it states this is for personal profile articles and not for the curated editorial blog, directing the agent to sapiens_article instead. It also gives conditional usage for covers (use coverImageId/coverImageUrl when you already have an image) and warns against blind retries, telling the agent to check list first.

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

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

  1. 29 tool updatesv1.38.0
    • First observedsapiens_article
    • First observedsapiens_atlas
    • First observedsapiens_aula
    • First observedsapiens_brand
    • First observedsapiens_character
    • First observedsapiens_community
    • First observedsapiens_forum
    • First observedsapiens_gallery
    • First observedsapiens_helen
    • First observedsapiens_image
    • First observedsapiens_instagram
    • First observedsapiens_meta
    • First observedsapiens_musicator
    • First observedsapiens_persona
    • First observedsapiens_pipeline
    • First observedsapiens_profile
    • First observedsapiens_quote_pop
    • First observedsapiens_reference
    • First observedsapiens_repertorio
    • First observedsapiens_search
    • First observedsapiens_shorts
    • First observedsapiens_sintetico
    • First observedsapiens_stock_audio
    • First observedsapiens_stock_video
    • First observedsapiens_studios
    • First observedsapiens_support
    • First observedsapiens_trilhas
    • First observedsapiens_video
    • First observedsapiens_write

TDQS

A4.1/5.0

Scored across 29 tools

Disambiguation4/5

Each tool is anchored to a distinct domain (video, image, music, community, etc.), and the long descriptions make their boundaries clear. However, the article/content cluster—sapiens_pipeline, sapiens_article, sapiens_write, and sapiens_quote_pop—has overlapping purposes that could cause an agent to misroute a content-creation request.

Naming Consistency5/5

All 29 tools follow a uniform `sapiens_<domain>` pattern with lowercase snake_case sub-actions (list, get, create, update, publish, generate). The naming is highly predictable across the entire surface, with no mixed conventions or vague generic verbs.

Tool Count2/5

At 29 top-level tools, this exceeds the 25+ threshold where the set becomes difficult for an agent to navigate efficiently. Even though the platform scope is broad, each tool carries many sub-actions, making the effective action space enormous and the overall surface heavy.

Completeness5/5

The surface provides deep lifecycle coverage within each domain: pipelines have create/update/finalize/remove/restore, articles have full CRUD plus publishing, and media libraries have browse/build/publish flows. Deliberate exclusions (e.g., signing forum proposals, closing support tickets) are intentional design boundaries rather than gaps, and the coverage is comprehensive for a platform of this scope.

Maintenance

ActivitySlowing
ResponsivenessNo issues

Related MCP Connectors

Related MCP Servers