Skip to main content
Glama

sapiens_write

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. ESCOLHA A PORTA CERTA: texto que a PESSOA já escreveu vai em create (GRÁTIS, nada reescrito); IA só entra em generate (400 Sinapses). Gerar e depois sobrescrever com o texto original é queimar 400 à toa. Sub-actions: create (salva o texto pronto do autor: title obrigatório + content markdown; nasce rascunho, custo 0; brandSlug veste a peça com um design system (omitido, herda o padrão da conta) e é o que faz capa e imagens saírem no estilo DELE, não no da casa; coverImageId/coverImageUrl anexam uma capa que ele já tem, também de graça), 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, já no design system do autor quando ele tem um; 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).

Input Schema

NameRequiredDescriptionDefault
tagsNocreate: até 8 tags específicas. Opcional.
tldrNo
briefNoBriefing livre (1 parágrafo, até ~600 palavras). Caminho padrão de 'generate'. A IA expande na voz Sapiens. Custa 400 Sinapses. Pra texto que VOCÊ já escreveu, use action=create (de graça).
limitNoDefault 50. Max 100. Só pra action=list.
titleNoObrigatório em create. Em update, renomeia.
actionYes
contentNoMarkdown completo do corpo. Em create, é o teu texto na íntegra (nada é reescrito). Em update, substitui o conteúdo.
excerptNo
publishNoaction=publish: true publica no teu perfil (/u/<username>), false volta pra rascunho. Default true.
categoryNocreate: categoria do artigo (ex: 'filosofia-tech'). Opcional.
articleIdNouser_articles:_id (obrigatório pra get/update/publish).
brandSlugNocreate: design system que veste a peça (slug via sapiens_brand action=list). Omitido, herda o padrão da tua conta. É o que faz a capa e as imagens saírem no TEU estilo, não no da casa.
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, vale em create e 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').

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observed

TDQS

A4.4/5.0
Behavior3/5

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

Annotations (readOnlyHint=false, openWorldHint=true) establish this is a mutating open-world tool; the description adds substantial context beyond that: cost (400 Sinapses, refunded on failure), synchronous execution under a timeout rule, and no idempotency (blind retry creates a second draft and double charges). However, several write behaviors (what update replaces, whether publish changes URL) are only implied. Strong added value, so a 3+ rather than higher.

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 front-loaded: the port-choice decision (create vs generate) comes before action details, which is the highest-value information. It is long and partially restates schema descriptions (coverImageId, brandSlug), costing it the top mark, but every sentence carries routing or cost 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 21-parameter, six-action tool with no output schema, the description covers all actions, cost model, identity/sessionToken, timeout behavior, and cross-tool dependencies (sapiens_image, sapiens_brand, sapiens_gallery, sapiens_repertorio). Nothing an agent needs 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.

Parameters4/5

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

Schema coverage is 86%, so the schema already carries most parameter meaning (baseline 3). The description adds the 'why' for key params: brandSlug controls whose design system styles the cover/images, and coverImageId/coverImageUrl override the courtesy cover when an image already exists. Marginal but real value above the schema.

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

Purpose5/5

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

States a specific verb+resource and scope: user's own self-serve articles at /u/<username>, explicitly NOT the editorial blog. It names the sibling it is not (sapiens_article for the curated editorial blog) and enumerates all six sub-actions, so an agent can tell exactly what it does.

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?

Explicit routing guidance: text the person already wrote goes to create (free), AI only in generate (400 Sinapses), and burning 400 by generating then overwriting is called out as a mistake. It also names the alternative (sapiens_article) and gives a timeout/idempotency warning with the prescribed check (action=list before retrying).

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

Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.