Skip to main content
Glama
TwinWrite

xiaofenshen-mcp-server

by TwinWrite

小分身公开 MCP

这是 小分身(TwinWrite)的公开 MCP 仓库,把已经免登录的只读接口转成 MCP 工具,给 Cursor、Claude Desktop 等外部 Agent 使用。

小分身是什么

小分身 是一个通过对话、长期记忆和「造梦」持续进化的个人 AI 创作分身。官网:xiaofenshen.com

你通过对话与训练告诉它你的语气、句式与偏好,它再用你的口吻帮你写下一篇。你可以创建多个分身,各自专注不同的创作场景;随着对话、记忆与反馈不断积累,它对你的理解会越来越深,输出也越来越像你本人。

常见用法是模仿你的风格写公众号、小红书等自媒体内容:在对话里粘贴代表作或直接训练,让分身学你的表达,再把 AI 写出来的稿子改得不像 AI、更像你本人。

本仓库是公开的薄客户端:只保存工具契约和 HTTP 转发。业务数据与实现都在小分身线上服务(xiaofenshen.com),这里不复制抓取、计费或分身逻辑。

Related MCP server: @prosodyai/mcp-docs

当前开放

工具

上游

read_public_share

GET /api/share/:token

list_image_prompt_templates

GET /api/image-prompt-templates

get_product_docs

GET /llms.txtGET /docs/<slug>.md

这三条产品侧本来就不挂登录。MCP 不新增鉴权,也不扩大可读范围。

明确不做(本版本)

热点、网页/微信抓取、分身对话、记忆、生图、公众号搜号等,都要用户身份或付费凭据。后续会走用户 token 授权,再在小分身加稳定 API,本仓库只增加对应工具名和转发,不把实现搬过来。

使用

需要 Node 22+。

pnpm install
pnpm test
pnpm build

Cursor mcp.json 示例:

{
  "mcpServers": {
    "xiaofenshen": {
      "command": "npx",
      "args": ["-y", "github:TwinWrite/xiaofenshen-mcp-server"]
    }
  }
}

环境变量

默认

XIAOFENSHEN_WEB_ORIGIN

https://xiaofenshen.com

XIAOFENSHEN_API_BASE_URL

https://api.xiaofenshen.com

相关链接

Available Tools

3 tools
get_product_docsA

读取小分身公开帮助文档。不传 slug 返回 /llms.txt 索引;传 slug 返回对应 Markdown。

ParametersJSON Schema
NameRequiredDescriptionDefault
slugNo文档 slug。省略则返回 /llms.txt 索引

TDQS

A4.3/5.0
Behavior4/5

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

With no annotations, the description must carry the full burden. It explicitly states the tool is for reading public docs (implying read-only, no auth), and it discloses the two possible return behaviors. It doesn't detail error cases or edge limits, but for a simple public-read tool this is reasonably transparent.

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 a single, well-structured sentence that front-loads the core purpose and then clarifies the conditional behavior. Every word earns its place with no redundancy or 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 tool with one optional parameter and no output schema, the description is fully sufficient. It explains both invocation modes and their return types. There are no hidden behaviors or missing context that would confuse an agent.

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 schema already describes the slug parameter fully (including that omitting it returns the index). The tool description restates the same behavioral condition, adding no new meaning beyond the schema. Since schema coverage is 100%, the baseline of 3 applies.

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 reads public help documentation for '小分身' (specific verb+resource). It distinguishes two modes based on the optional slug parameter, which is specific and differentiates it from sibling tools like read_public_share and list_image_prompt_templates.

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 clear conditional context: omitting slug returns the /llms.txt index, while providing slug returns the corresponding Markdown. It does not explicitly mention alternatives or exclusions, but the scope is well-defined enough for an agent to infer when 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.

list_image_prompt_templatesA

列出小分身启用的生图提示词模板(系统级只读,含 prompt 与效果图)。可选 slug 过滤单条。不会触发生图。

ParametersJSON Schema
NameRequiredDescriptionDefault
slugNo可选,只返回这一条模板

TDQS

A4.7/5.0
Behavior5/5

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

No annotations are provided, so the description carries the full burden. It explicitly states '系统级只读' (system-level read-only) and '不会触发生图' (does not trigger image generation), which are valuable behavioral guarantees beyond the tool's name.

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?

Three short sentences, each providing unique information: scope, content, filter option, and side-effect guarantee. Zero 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 simple read-only list tool with one optional parameter, the description covers purpose, content, filtering, and safety. No output schema is needed because the description already mentions what is returned (prompt and preview image).

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 schema already describes slug at 100% coverage, but the description adds a more user-friendly phrasing '可选 slug 过滤单条', reinforcing its optionality and filtering behavior, which is somewhat redundant but still helps.

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 uses a specific verb '列出' (list) with a clear resource '生图提示词模板' (image prompt templates), and distinguishes it from siblings by focusing on template listing rather than reading shares or product docs.

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 mentions the optional slug filter for narrowing to a single template, which gives context for when to pass parameters. It doesn't explicitly contrast with sibling tools, but the purpose is distinct enough to imply usage.

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

read_public_shareA

读取用户主动公开的小分身文章快照。可传分享页 URL 或 token。只返回标题、正文、封面和分身署名,不含对话上下文。

ParametersJSON Schema
NameRequiredDescriptionDefault
tokenOrUrlYes分享页 URL 或 token

TDQS

A4.2/5.0
Behavior4/5

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

No annotations are provided, so the description carries the full burden. It explicitly discloses what the tool returns (title, body, cover, signature) and what it excludes (conversation context). It also uses 'snapshot' to imply a fixed view. While lacking details on auth or rate limits, it covers key behavioral aspects well.

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?

Two sentences, front-loaded with purpose, then usage, then output. Every sentence adds value with no redundancy or filler.

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 simple read tool with one parameter and no output schema, the description covers purpose, input, and return values, including an explicit exclusion. It misses example usage or edge-case behavior, but is sufficiently complete for the tool's complexity.

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?

With one parameter and 100% schema description coverage (the schema already describes 'URL or token'), the description adds no additional meaning beyond repeating the same information. Baseline 3 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 uses a specific verb ('读取' / read) and clearly identifies the resource ('用户主动公开的小分身文章快照'). It also distinguishes from siblings by focusing on reading public shares, as opposed to listing templates or getting product docs.

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 clear context for when to use—specifically for publicly shared articles—and explains the accepted input (URL or token). However, it does not explicitly mention alternatives or when not to use, so it falls short of a full 5.

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. Dates show when Glama detected each change.

  1. 3 tool updatesv0.1.0
    • First observedget_product_docs
    • First observedlist_image_prompt_templates
    • First observedread_public_share

TDQS

A4.5/5.0
Disambiguation5/5

Each tool serves a completely distinct purpose: reading public shares, listing image prompt templates, and fetching product docs. There is no overlap or ambiguity between them.

Naming Consistency5/5

All tool names follow a consistent verb_noun pattern with snake_case: read_public_share, list_image_prompt_templates, get_product_docs. The naming is predictable and uniform.

Tool Count5/5

With only 3 tools, the server is tightly scoped for its read-only informational purpose. Each tool earns its place and covers a distinct resource, fitting comfortably within the ideal range.

Completeness5/5

The server covers the three main public-facing resource types (shares, templates, docs) with read operations. No obvious gaps exist for the stated read-only domain, as operations align with the server's purpose.

Maintenance

ActivityMaintained
ResponsivenessNo issues

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Related MCP Connectors

Related MCP Servers

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/TwinWrite/xiaofenshen-mcp-server'

If you have feedback or need assistance with the MCP directory API, please join our Discord server