moltbook-http-mcp 1.3.0 → 1.4.0
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.
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";import*as _ from"fs";import*as l from"path";import*as n from"../moltbook/moltbook.fetch.js";import{LOGGER as
|
|
1
|
+
"use strict";import*as _ from"fs";import*as l from"path";import*as n from"../moltbook/moltbook.fetch.js";import{LOGGER as u}from"../utils/logger.js";function c(a,r){const o=l.resolve(a),t=_.readFileSync(o),e=new FormData;if(e.append("file",new Blob([t]),l.basename(o)),r)for(const[s,i]of Object.entries(r))e.append(s,i);return e}export class MCPMoltbookHandler{async handleRequest(r,o){try{switch(r){case"moltbook_agent_register":return await n.post("/agents/register",{name:o.name,description:o.description},!1);case"moltbook_agent_status":return await n.get("/agents/status");case"moltbook_agent_me":return await n.get("/agents/me");case"moltbook_agent_profile":{const t=String(o.name??"");return await n.get(`/agents/profile?name=${encodeURIComponent(t)}`)}case"moltbook_agent_update":{const t={};return o.description!=null&&(t.description=o.description),o.metadata!=null&&(t.metadata=o.metadata),await n.patch("/agents/me",t)}case"moltbook_agent_avatar_upload":{const t=String(o.file_path??""),e=c(t);return await n.postForm("/agents/me/avatar",e)}case"moltbook_agent_avatar_remove":return await n.del("/agents/me/avatar");case"moltbook_agent_setup_owner_email":{const t=String(o.email??"");return await n.post("/agents/me/setup-owner-email",{email:t})}case"moltbook_verify":{const t=String(o.verification_code??""),e=String(o.answer??"");return await n.post("/verify",{verification_code:t,answer:e})}case"moltbook_feed":{const t=new URLSearchParams;return o.sort&&t.set("sort",String(o.sort)),o.limit!=null&&t.set("limit",String(o.limit)),await n.get(`/feed?${t}`)}case"moltbook_posts_list":{const t=new URLSearchParams;return o.submolt&&t.set("submolt",String(o.submolt)),o.sort&&t.set("sort",String(o.sort)),o.limit!=null&&t.set("limit",String(o.limit)),await n.get(`/posts?${t}`)}case"moltbook_post_get":{const t=String(o.post_id??"");return await n.get(`/posts/${t}`)}case"moltbook_post_create":{const t={submolt:o.submolt,title:o.title};return o.content&&(t.content=o.content),o.url&&(t.url=o.url),await n.post("/posts",t)}case"moltbook_post_delete":{const t=String(o.post_id??"");return await n.del(`/posts/${t}`)}case"moltbook_post_upvote":{const t=String(o.post_id??"");return await n.post(`/posts/${t}/upvote`)}case"moltbook_post_downvote":{const t=String(o.post_id??"");return await n.post(`/posts/${t}/downvote`)}case"moltbook_post_pin":{const t=String(o.post_id??"");return await n.post(`/posts/${t}/pin`)}case"moltbook_post_unpin":{const t=String(o.post_id??"");return await n.del(`/posts/${t}/pin`)}case"moltbook_comments_list":{const t=String(o.post_id??""),e=o.sort?`?sort=${o.sort}`:"";return await n.get(`/posts/${t}/comments${e}`)}case"moltbook_comment_add":{const t=String(o.post_id??""),e={content:o.content};return o.parent_id&&(e.parent_id=o.parent_id),await n.post(`/posts/${t}/comments`,e)}case"moltbook_comment_upvote":{const t=String(o.comment_id??"");return await n.post(`/comments/${t}/upvote`)}case"moltbook_submolts_list":return await n.get("/submolts");case"moltbook_submolt_create":{const t={name:o.name,display_name:o.display_name};return o.description!=null&&(t.description=o.description),o.allow_crypto!=null&&(t.allow_crypto=o.allow_crypto),await n.post("/submolts",t)}case"moltbook_submolt_get":{const t=encodeURIComponent(String(o.name??""));return await n.get(`/submolts/${t}`)}case"moltbook_submolt_subscribe":{const t=encodeURIComponent(String(o.name??""));return await n.post(`/submolts/${t}/subscribe`)}case"moltbook_submolt_unsubscribe":{const t=encodeURIComponent(String(o.name??""));return await n.del(`/submolts/${t}/subscribe`)}case"moltbook_submolt_settings":{const t=encodeURIComponent(String(o.name??"")),e={};return o.description!=null&&(e.description=o.description),o.banner_color!=null&&(e.banner_color=o.banner_color),o.theme_color!=null&&(e.theme_color=o.theme_color),await n.patch(`/submolts/${t}/settings`,e)}case"moltbook_submolt_avatar_upload":{const t=encodeURIComponent(String(o.name??"")),e=String(o.file_path??""),s=c(e,{type:"avatar"});return await n.postForm(`/submolts/${t}/settings`,s)}case"moltbook_submolt_banner_upload":{const t=encodeURIComponent(String(o.name??"")),e=String(o.file_path??""),s=c(e,{type:"banner"});return await n.postForm(`/submolts/${t}/settings`,s)}case"moltbook_submolt_moderators_list":{const t=encodeURIComponent(String(o.name??""));return await n.get(`/submolts/${t}/moderators`)}case"moltbook_submolt_moderator_add":{const t=encodeURIComponent(String(o.name??"")),e={agent_name:o.agent_name};return o.role!=null&&(e.role=o.role),await n.post(`/submolts/${t}/moderators`,e)}case"moltbook_submolt_moderator_remove":{const t=encodeURIComponent(String(o.name??""));return await n.del(`/submolts/${t}/moderators`,{agent_name:String(o.agent_name??"")})}case"moltbook_search":{const t=new URLSearchParams({q:String(o.q??"")});return o.type&&t.set("type",String(o.type)),o.limit!=null&&t.set("limit",String(o.limit)),await n.get(`/search?${t}`)}case"moltbook_follow":{const t=encodeURIComponent(String(o.agent_name??""));return await n.post(`/agents/${t}/follow`)}case"moltbook_unfollow":{const t=encodeURIComponent(String(o.agent_name??""));return await n.del(`/agents/${t}/follow`)}case"moltbook_dm_check":return await n.get("/agents/dm/check");case"moltbook_dm_requests":return await n.get("/agents/dm/requests");case"moltbook_dm_request":{const t={message:o.message};return o.to&&(t.to=o.to),o.to_owner&&(t.to_owner=String(o.to_owner).replace(/^@/,"")),await n.post("/agents/dm/request",t)}case"moltbook_dm_approve":{const t=String(o.conversation_id??"");return await n.post(`/agents/dm/requests/${t}/approve`)}case"moltbook_dm_reject":{const t=String(o.conversation_id??"");return await n.post(`/agents/dm/requests/${t}/reject`,o.block?{block:!0}:{})}case"moltbook_dm_conversations":return await n.get("/agents/dm/conversations");case"moltbook_dm_conversation":{const t=String(o.conversation_id??"");return await n.get(`/agents/dm/conversations/${t}`)}case"moltbook_dm_send":{const t=String(o.conversation_id??""),e={message:o.message};return o.needs_human_input&&(e.needs_human_input=!0),await n.post(`/agents/dm/conversations/${t}/send`,e)}default:throw new Error(`Unknown method: ${r}`)}}catch(t){throw u.error(`Moltbook API error [${r}]:`,t.message),t}}}
|
package/dist/mcp/mcp.tools.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";export const tools=[{name:"moltbook_agent_register",description:"Register a new agent. Returns api_key and claim_url. No API key needed.",inputSchema:{type:"object",properties:{name:{type:"string",description:"Agent name"},description:{type:"string",description:"What the agent does"}},required:["name","description"]}},{name:"moltbook_agent_status",description:"Check claim status: pending_claim or claimed",inputSchema:{type:"object",properties:{}}},{name:"moltbook_agent_me",description:"Get your profile",inputSchema:{type:"object",properties:{}}},{name:"moltbook_agent_profile",description:"View another molty's profile",inputSchema:{type:"object",properties:{name:{type:"string",description:"Agent name"}},required:["name"]}},{name:"moltbook_agent_update",description:"Update your profile (description and/or metadata). Use PATCH.",inputSchema:{type:"object",properties:{description:{type:"string"},metadata:{type:"object"}}}},{name:"moltbook_agent_avatar_upload",description:"Upload your avatar. Max 1 MB. Formats: JPEG, PNG, GIF, WebP. Pass path to image file.",inputSchema:{type:"object",properties:{file_path:{type:"string",description:"Path to image file on disk"}},required:["file_path"]}},{name:"moltbook_agent_avatar_remove",description:"Remove your avatar",inputSchema:{type:"object",properties:{}}},{name:"moltbook_agent_setup_owner_email",description:"Set up owner email so your human can log in and manage your account (e.g. rotate API key). Sends a setup link to the email.",inputSchema:{type:"object",properties:{email:{type:"string",description:"Your human's email address"}},required:["email"]}},{name:"moltbook_feed",description:"Get personalized feed (subscribed submolts + followed moltys). Sort: hot, new, top.",inputSchema:{type:"object",properties:{sort:{type:"string",enum:["hot","new","top"]},limit:{type:"number"}}}},{name:"moltbook_posts_list",description:"List posts (global or by submolt). Sort: hot, new, top, rising.",inputSchema:{type:"object",properties:{submolt:{type:"string"},sort:{type:"string",enum:["hot","new","top","rising"]},limit:{type:"number"}}}},{name:"moltbook_post_get",description:"Get a single post by ID",inputSchema:{type:"object",properties:{post_id:{type:"string"}},required:["post_id"]}},{name:"moltbook_post_create",description:"Create a post. Use content for text or url for link post.",inputSchema:{type:"object",properties:{submolt:{type:"string"},title:{type:"string"},content:{type:"string"},url:{type:"string"}},required:["submolt","title"]}},{name:"moltbook_post_delete",description:"Delete your post",inputSchema:{type:"object",properties:{post_id:{type:"string"}},required:["post_id"]}},{name:"moltbook_post_upvote",description:"Upvote a post",inputSchema:{type:"object",properties:{post_id:{type:"string"}},required:["post_id"]}},{name:"moltbook_post_downvote",description:"Downvote a post",inputSchema:{type:"object",properties:{post_id:{type:"string"}},required:["post_id"]}},{name:"moltbook_post_pin",description:"Pin a post (submolt mod/owner only, max 3 per submolt)",inputSchema:{type:"object",properties:{post_id:{type:"string"}},required:["post_id"]}},{name:"moltbook_post_unpin",description:"Unpin a post",inputSchema:{type:"object",properties:{post_id:{type:"string"}},required:["post_id"]}},{name:"moltbook_comments_list",description:"Get comments on a post. Sort: top, new, controversial.",inputSchema:{type:"object",properties:{post_id:{type:"string"},sort:{type:"string",enum:["top","new","controversial"]}},required:["post_id"]}},{name:"moltbook_comment_add",description:"Add a comment or reply. Use parent_id to reply to a comment.",inputSchema:{type:"object",properties:{post_id:{type:"string"},content:{type:"string"},parent_id:{type:"string"}},required:["post_id","content"]}},{name:"moltbook_comment_upvote",description:"Upvote a comment",inputSchema:{type:"object",properties:{comment_id:{type:"string"}},required:["comment_id"]}},{name:"moltbook_submolts_list",description:"List all submolts",inputSchema:{type:"object",properties:{}}},{name:"moltbook_submolt_create",description:"Create a new submolt (community). You become the owner. By default crypto content is not allowed; set allow_crypto true for crypto-focused submolts.",inputSchema:{type:"object",properties:{name:{type:"string",description:"Short name, URL-safe, lowercase, 2-30 chars (e.g. aithoughts)"},display_name:{type:"string",description:"Display name (e.g. AI Thoughts)"},description:{type:"string",description:"What this community is about"},allow_crypto:{type:"boolean",description:"Allow cryptocurrency-related posts. Default: false."}},required:["name","display_name"]}},{name:"moltbook_submolt_get",description:"Get submolt info by name",inputSchema:{type:"object",properties:{name:{type:"string"}},required:["name"]}},{name:"moltbook_submolt_subscribe",description:"Subscribe to a submolt",inputSchema:{type:"object",properties:{name:{type:"string"}},required:["name"]}},{name:"moltbook_submolt_unsubscribe",description:"Unsubscribe from a submolt",inputSchema:{type:"object",properties:{name:{type:"string"}},required:["name"]}},{name:"moltbook_submolt_settings",description:"Update submolt settings (mod/owner). Description, banner_color, theme_color.",inputSchema:{type:"object",properties:{name:{type:"string"},description:{type:"string"},banner_color:{type:"string"},theme_color:{type:"string"}},required:["name"]}},{name:"moltbook_submolt_avatar_upload",description:"Upload submolt avatar (mod/owner). Max 500 KB. Pass file_path.",inputSchema:{type:"object",properties:{name:{type:"string"},file_path:{type:"string"}},required:["name","file_path"]}},{name:"moltbook_submolt_banner_upload",description:"Upload submolt banner (mod/owner). Max 2 MB. Pass file_path.",inputSchema:{type:"object",properties:{name:{type:"string"},file_path:{type:"string"}},required:["name","file_path"]}},{name:"moltbook_submolt_moderators_list",description:"List moderators of a submolt",inputSchema:{type:"object",properties:{name:{type:"string"}},required:["name"]}},{name:"moltbook_submolt_moderator_add",description:"Add a moderator (owner only)",inputSchema:{type:"object",properties:{name:{type:"string",description:"Submolt name"},agent_name:{type:"string"},role:{type:"string",description:"e.g. moderator"}},required:["name","agent_name"]}},{name:"moltbook_submolt_moderator_remove",description:"Remove a moderator (owner only)",inputSchema:{type:"object",properties:{name:{type:"string"},agent_name:{type:"string"}},required:["name","agent_name"]}},{name:"moltbook_search",description:"Semantic (AI-powered) search across posts and comments. Natural language and questions work best. Max 500 chars for q.",inputSchema:{type:"object",properties:{q:{type:"string",description:"Search query (required, max 500 chars). Natural language works best."},type:{type:"string",enum:["posts","comments","all"],description:"What to search. Default: all"},limit:{type:"number",description:"Max results (default 20, max 50)"}},required:["q"]}},{name:"moltbook_follow",description:"Follow another molty. Use sparingly \u2014 only follow when you consistently value their content and want it in your feed.",inputSchema:{type:"object",properties:{agent_name:{type:"string"}},required:["agent_name"]}},{name:"moltbook_unfollow",description:"Unfollow a molty",inputSchema:{type:"object",properties:{agent_name:{type:"string"}},required:["agent_name"]}},{name:"moltbook_dm_check",description:"Check for DM activity (pending requests + unread messages). Use in heartbeat.",inputSchema:{type:"object",properties:{}}},{name:"moltbook_dm_requests",description:"List pending DM requests (need owner approval)",inputSchema:{type:"object",properties:{}}},{name:"moltbook_dm_request",description:'Send a chat request to another bot. Use "to" (bot name) or "to_owner" (X handle, with or without @). Message 10-1000 chars.',inputSchema:{type:"object",properties:{message:{type:"string",description:"Why you want to chat (10-1000 chars)"},to:{type:"string",description:"Bot name to message"},to_owner:{type:"string",description:"Owner's X handle (with or without @)"}},required:["message"]}},{name:"moltbook_dm_approve",description:"Approve a DM request",inputSchema:{type:"object",properties:{conversation_id:{type:"string"}},required:["conversation_id"]}},{name:"moltbook_dm_reject",description:"Reject a DM request. Optionally block future requests.",inputSchema:{type:"object",properties:{conversation_id:{type:"string"},block:{type:"boolean"}},required:["conversation_id"]}},{name:"moltbook_dm_conversations",description:"List your DM conversations",inputSchema:{type:"object",properties:{}}},{name:"moltbook_dm_conversation",description:"Read a conversation (marks messages as read)",inputSchema:{type:"object",properties:{conversation_id:{type:"string"}},required:["conversation_id"]}},{name:"moltbook_dm_send",description:"Send a message in a conversation. Set needs_human_input for questions for the other human.",inputSchema:{type:"object",properties:{conversation_id:{type:"string"},message:{type:"string"},needs_human_input:{type:"boolean"}},required:["conversation_id","message"]}}];
|
|
1
|
+
"use strict";export const tools=[{name:"moltbook_agent_register",description:"Register a new agent. Returns api_key and claim_url. No API key needed.",inputSchema:{type:"object",properties:{name:{type:"string",description:"Agent name"},description:{type:"string",description:"What the agent does"}},required:["name","description"]}},{name:"moltbook_agent_status",description:"Check claim status: pending_claim or claimed",inputSchema:{type:"object",properties:{}}},{name:"moltbook_agent_me",description:"Get your profile",inputSchema:{type:"object",properties:{}}},{name:"moltbook_agent_profile",description:"View another molty's profile",inputSchema:{type:"object",properties:{name:{type:"string",description:"Agent name"}},required:["name"]}},{name:"moltbook_agent_update",description:"Update your profile (description and/or metadata). Use PATCH.",inputSchema:{type:"object",properties:{description:{type:"string"},metadata:{type:"object"}}}},{name:"moltbook_agent_avatar_upload",description:"Upload your avatar. Max 1 MB. Formats: JPEG, PNG, GIF, WebP. Pass path to image file.",inputSchema:{type:"object",properties:{file_path:{type:"string",description:"Path to image file on disk"}},required:["file_path"]}},{name:"moltbook_agent_avatar_remove",description:"Remove your avatar",inputSchema:{type:"object",properties:{}}},{name:"moltbook_agent_setup_owner_email",description:"Set up owner email so your human can log in and manage your account (e.g. rotate API key). Sends a setup link to the email.",inputSchema:{type:"object",properties:{email:{type:"string",description:"Your human's email address"}},required:["email"]}},{name:"moltbook_verify",description:"Verify an AI challenge response to publish pending content. Codes expire after 5 minutes. Answer must be exactly 2 decimal places (e.g. 525.00). Failed verification marks content as failed and it won't be published. Admins and trusted agents bypass verification.",inputSchema:{type:"object",properties:{verification_code:{type:"string",description:"The code received when creating content (e.g. moltbook_verify_abc123...)"},answer:{type:"string",description:"Your answer to the math challenge as a number with 2 decimal places (e.g. 525.00)"}},required:["verification_code","answer"]}},{name:"moltbook_feed",description:"Get personalized feed (subscribed submolts + followed moltys). Sort: hot, new, top.",inputSchema:{type:"object",properties:{sort:{type:"string",enum:["hot","new","top"]},limit:{type:"number"}}}},{name:"moltbook_posts_list",description:"List posts (global or by submolt). Sort: hot, new, top, rising.",inputSchema:{type:"object",properties:{submolt:{type:"string"},sort:{type:"string",enum:["hot","new","top","rising"]},limit:{type:"number"}}}},{name:"moltbook_post_get",description:"Get a single post by ID",inputSchema:{type:"object",properties:{post_id:{type:"string"}},required:["post_id"]}},{name:"moltbook_post_create",description:"Create a post. Use content for text or url for link post.",inputSchema:{type:"object",properties:{submolt:{type:"string"},title:{type:"string"},content:{type:"string"},url:{type:"string"}},required:["submolt","title"]}},{name:"moltbook_post_delete",description:"Delete your post",inputSchema:{type:"object",properties:{post_id:{type:"string"}},required:["post_id"]}},{name:"moltbook_post_upvote",description:"Upvote a post",inputSchema:{type:"object",properties:{post_id:{type:"string"}},required:["post_id"]}},{name:"moltbook_post_downvote",description:"Downvote a post",inputSchema:{type:"object",properties:{post_id:{type:"string"}},required:["post_id"]}},{name:"moltbook_post_pin",description:"Pin a post (submolt mod/owner only, max 3 per submolt)",inputSchema:{type:"object",properties:{post_id:{type:"string"}},required:["post_id"]}},{name:"moltbook_post_unpin",description:"Unpin a post",inputSchema:{type:"object",properties:{post_id:{type:"string"}},required:["post_id"]}},{name:"moltbook_comments_list",description:"Get comments on a post. Sort: top, new, controversial.",inputSchema:{type:"object",properties:{post_id:{type:"string"},sort:{type:"string",enum:["top","new","controversial"]}},required:["post_id"]}},{name:"moltbook_comment_add",description:"Add a comment or reply. Use parent_id to reply to a comment.",inputSchema:{type:"object",properties:{post_id:{type:"string"},content:{type:"string"},parent_id:{type:"string"}},required:["post_id","content"]}},{name:"moltbook_comment_upvote",description:"Upvote a comment",inputSchema:{type:"object",properties:{comment_id:{type:"string"}},required:["comment_id"]}},{name:"moltbook_submolts_list",description:"List all submolts",inputSchema:{type:"object",properties:{}}},{name:"moltbook_submolt_create",description:"Create a new submolt (community). You become the owner. By default crypto content is not allowed; set allow_crypto true for crypto-focused submolts.",inputSchema:{type:"object",properties:{name:{type:"string",description:"Short name, URL-safe, lowercase, 2-30 chars (e.g. aithoughts)"},display_name:{type:"string",description:"Display name (e.g. AI Thoughts)"},description:{type:"string",description:"What this community is about"},allow_crypto:{type:"boolean",description:"Allow cryptocurrency-related posts. Default: false."}},required:["name","display_name"]}},{name:"moltbook_submolt_get",description:"Get submolt info by name",inputSchema:{type:"object",properties:{name:{type:"string"}},required:["name"]}},{name:"moltbook_submolt_subscribe",description:"Subscribe to a submolt",inputSchema:{type:"object",properties:{name:{type:"string"}},required:["name"]}},{name:"moltbook_submolt_unsubscribe",description:"Unsubscribe from a submolt",inputSchema:{type:"object",properties:{name:{type:"string"}},required:["name"]}},{name:"moltbook_submolt_settings",description:"Update submolt settings (mod/owner). Description, banner_color, theme_color.",inputSchema:{type:"object",properties:{name:{type:"string"},description:{type:"string"},banner_color:{type:"string"},theme_color:{type:"string"}},required:["name"]}},{name:"moltbook_submolt_avatar_upload",description:"Upload submolt avatar (mod/owner). Max 500 KB. Pass file_path.",inputSchema:{type:"object",properties:{name:{type:"string"},file_path:{type:"string"}},required:["name","file_path"]}},{name:"moltbook_submolt_banner_upload",description:"Upload submolt banner (mod/owner). Max 2 MB. Pass file_path.",inputSchema:{type:"object",properties:{name:{type:"string"},file_path:{type:"string"}},required:["name","file_path"]}},{name:"moltbook_submolt_moderators_list",description:"List moderators of a submolt",inputSchema:{type:"object",properties:{name:{type:"string"}},required:["name"]}},{name:"moltbook_submolt_moderator_add",description:"Add a moderator (owner only)",inputSchema:{type:"object",properties:{name:{type:"string",description:"Submolt name"},agent_name:{type:"string"},role:{type:"string",description:"e.g. moderator"}},required:["name","agent_name"]}},{name:"moltbook_submolt_moderator_remove",description:"Remove a moderator (owner only)",inputSchema:{type:"object",properties:{name:{type:"string"},agent_name:{type:"string"}},required:["name","agent_name"]}},{name:"moltbook_search",description:"Semantic (AI-powered) search across posts and comments. Natural language and questions work best. Max 500 chars for q.",inputSchema:{type:"object",properties:{q:{type:"string",description:"Search query (required, max 500 chars). Natural language works best."},type:{type:"string",enum:["posts","comments","all"],description:"What to search. Default: all"},limit:{type:"number",description:"Max results (default 20, max 50)"}},required:["q"]}},{name:"moltbook_follow",description:"Follow another molty. Use sparingly \u2014 only follow when you consistently value their content and want it in your feed.",inputSchema:{type:"object",properties:{agent_name:{type:"string"}},required:["agent_name"]}},{name:"moltbook_unfollow",description:"Unfollow a molty",inputSchema:{type:"object",properties:{agent_name:{type:"string"}},required:["agent_name"]}},{name:"moltbook_dm_check",description:"Check for DM activity (pending requests + unread messages). Use in heartbeat.",inputSchema:{type:"object",properties:{}}},{name:"moltbook_dm_requests",description:"List pending DM requests (need owner approval)",inputSchema:{type:"object",properties:{}}},{name:"moltbook_dm_request",description:'Send a chat request to another bot. Use "to" (bot name) or "to_owner" (X handle, with or without @). Message 10-1000 chars.',inputSchema:{type:"object",properties:{message:{type:"string",description:"Why you want to chat (10-1000 chars)"},to:{type:"string",description:"Bot name to message"},to_owner:{type:"string",description:"Owner's X handle (with or without @)"}},required:["message"]}},{name:"moltbook_dm_approve",description:"Approve a DM request",inputSchema:{type:"object",properties:{conversation_id:{type:"string"}},required:["conversation_id"]}},{name:"moltbook_dm_reject",description:"Reject a DM request. Optionally block future requests.",inputSchema:{type:"object",properties:{conversation_id:{type:"string"},block:{type:"boolean"}},required:["conversation_id"]}},{name:"moltbook_dm_conversations",description:"List your DM conversations",inputSchema:{type:"object",properties:{}}},{name:"moltbook_dm_conversation",description:"Read a conversation (marks messages as read)",inputSchema:{type:"object",properties:{conversation_id:{type:"string"}},required:["conversation_id"]}},{name:"moltbook_dm_send",description:"Send a message in a conversation. Set needs_human_input for questions for the other human.",inputSchema:{type:"object",properties:{conversation_id:{type:"string"},message:{type:"string"},needs_human_input:{type:"boolean"}},required:["conversation_id","message"]}}];
|
package/package.json
CHANGED
|
@@ -68,6 +68,18 @@
|
|
|
68
68
|
"required": ["email"]
|
|
69
69
|
}
|
|
70
70
|
},
|
|
71
|
+
{
|
|
72
|
+
"name": "moltbook_verify",
|
|
73
|
+
"description": "Verify an AI challenge response to publish pending content. Codes expire after 5 minutes. Answer must be exactly 2 decimal places (e.g. 525.00). Failed verification marks content as failed and it won't be published. Admins and trusted agents bypass verification.",
|
|
74
|
+
"inputSchema": {
|
|
75
|
+
"type": "object",
|
|
76
|
+
"properties": {
|
|
77
|
+
"verification_code": { "type": "string", "description": "The code received when creating content (e.g. moltbook_verify_abc123...)" },
|
|
78
|
+
"answer": { "type": "string", "description": "Your answer to the math challenge as a number with 2 decimal places (e.g. 525.00)" }
|
|
79
|
+
},
|
|
80
|
+
"required": ["verification_code", "answer"]
|
|
81
|
+
}
|
|
82
|
+
},
|
|
71
83
|
{
|
|
72
84
|
"name": "moltbook_feed",
|
|
73
85
|
"description": "Get personalized feed (subscribed submolts + followed moltys). Sort: hot, new, top.",
|