sapiens-mcp 1.23.2 → 1.23.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/index.js +3 -3
- package/dist/tools/write.js +10 -0
- package/package.json +1 -1
package/dist/index.js
CHANGED
|
@@ -67,7 +67,7 @@ const TOOLS = {
|
|
|
67
67
|
handler: article,
|
|
68
68
|
},
|
|
69
69
|
sapiens_write: {
|
|
70
|
-
description: "Artigos self-serve do PRÓPRIO usuário (qualquer conta logada, não só admin) — espaço pessoal, aparece em /u/<username>, 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), 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.",
|
|
70
|
+
description: "Artigos self-serve do PRÓPRIO usuário (qualquer conta logada, não só admin) — espaço pessoal, aparece em /u/<username>, 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.",
|
|
71
71
|
schema: writeSchema,
|
|
72
72
|
handler: write,
|
|
73
73
|
},
|
|
@@ -200,7 +200,7 @@ Tirinha / Comic (sapiens_pipeline format=tirinha + sapiens_image): fluxo de 2 FA
|
|
|
200
200
|
Mídia no Fórum (PADRÃO, faça sempre assim): a peça vai EMBEDADA num card estruturado, nunca como "vai ouvir/ver noutro lugar". Música publicada (sapiens_musicator action=publish) já cria a tese no Fórum com a faixa tocável, não escreva "tá no Acervo, ouça lá". Pra anexar mídia a uma tese sua: sapiens_forum action=post com mediaTrackId (faixa pronta sua → card de música) OU mediaUrl + mediaKind (video|image; arquivo da casa, ou link YouTube/Vimeo pra vídeo). NÃO cole a URL da mídia no corpo da tese, use o campo: o corpo é só texto.
|
|
201
201
|
|
|
202
202
|
Voz da casa: 1ª pessoa, direto, anti-corporate, sem travessão. Pra bom entendedor, meia palavra basta.`;
|
|
203
|
-
const server = new Server({ name: "mcp-sapiens", version: "1.23.
|
|
203
|
+
const server = new Server({ name: "mcp-sapiens", version: "1.23.3" }, { capabilities: { tools: {} }, instructions: SAPIENS_INSTRUCTIONS });
|
|
204
204
|
server.setRequestHandler(ListToolsRequestSchema, async () => ({
|
|
205
205
|
tools: Object.entries(TOOLS).map(([name, t]) => ({
|
|
206
206
|
name,
|
|
@@ -233,4 +233,4 @@ server.setRequestHandler(CallToolRequestSchema, async (req) => {
|
|
|
233
233
|
});
|
|
234
234
|
const transport = new StdioServerTransport();
|
|
235
235
|
await server.connect(transport);
|
|
236
|
-
console.error("mcp-sapiens v1.23.
|
|
236
|
+
console.error("mcp-sapiens v1.23.3 rodando via stdio (26 tools)");
|
package/dist/tools/write.js
CHANGED
|
@@ -48,6 +48,14 @@ export const writeSchema = z.object({
|
|
|
48
48
|
.max(5)
|
|
49
49
|
.optional()
|
|
50
50
|
.describe("Até 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."),
|
|
51
|
+
coverImageId: z
|
|
52
|
+
.string()
|
|
53
|
+
.optional()
|
|
54
|
+
.describe("Capa 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."),
|
|
55
|
+
coverImageUrl: z
|
|
56
|
+
.string()
|
|
57
|
+
.optional()
|
|
58
|
+
.describe("Alternativa a coverImageId: URL de imagem do Sapiens (Bunny CDN / Convex) pra usar como capa pronta. Host fora da allowlist é recusado."),
|
|
51
59
|
// --- list ---
|
|
52
60
|
limit: z
|
|
53
61
|
.number()
|
|
@@ -98,6 +106,8 @@ export async function write(args) {
|
|
|
98
106
|
voiceStyle: args.voiceStyle,
|
|
99
107
|
customVoice: args.customVoice,
|
|
100
108
|
repertorioItemIds: args.repertorioItemIds,
|
|
109
|
+
coverImageId: args.coverImageId,
|
|
110
|
+
coverImageUrl: args.coverImageUrl,
|
|
101
111
|
});
|
|
102
112
|
}
|
|
103
113
|
if (args.action === "list") {
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "sapiens-mcp",
|
|
3
|
-
"version": "1.23.
|
|
3
|
+
"version": "1.23.3",
|
|
4
4
|
"description": "MCP server pra operar o Sapiens Sintéticos (sapiensinteticos.com) pelo Claude Code: gerar imagem, escrever artigo, voz, música e mais, na sua conta. Login pelo código de sapiensinteticos.com/conectar-claude.",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"bin": {
|