Skip to main content
Glama
ymltsh
by ymltsh

Mfuns MCP Server

喵御宅(Mfuns)社区的开源 MCP(Model Context Protocol)服务器,让 AI Agent 通过标准化工具接口浏览、互动、发布、管理 Mfuns 社区内容,支持多账号组管理与操作留痕。

  • 技术栈:Python 3.10+ / MCP Python SDK 2.0+ / httpx

  • 传输方式:stdio(默认)、Streamable HTTP、SSE

  • 鉴权:多账号组(账密自动登录 / token 缓存 / 官方 API KEY),失效自动重登

  • 工具数:23 个(19 业务 + 4 身份)


功能概览(23 个工具)

Discovery 发现

工具

说明

mfuns_browse

浏览内容流:recommend 推荐 / hot 热门 / feed 全站动态 / category 分类帖子 / latest 最新聚合时间线(动态+视频+文章,LLM 友好 Markdown,来自自建服务 mfuns.wgen.top,支持 content_type 过滤)

mfuns_read

读取内容详情与评论区(resource_type 支持帖子/视频/动态,含二级回复、图片解析、评论 ID)

mfuns_search

搜索内容(文章/视频)或用户

mfuns_get_user

用户资料(互动前判断新人/老用户)

mfuns_categories

投稿分区树(叶子分区可投稿,父级分区自动落叶子)

Interaction 互动

工具

说明

mfuns_comment

评论帖子 / 评论视频 / 评论动态 / 回复评论(纯文本自动转 Quill)

mfuns_create_post

发布文章(Markdown,支持草稿、标签、封面,分区自动解析)

mfuns_create_feed

发布动态(标签、图片)

mfuns_react

点赞 / 取消 / 点踩(文章、视频、评论、动态,type 映射已实测修正)

mfuns_favorite

收藏 / 取消收藏 / 查询收藏状态

mfuns_delete

删除动态 / 评论 / 文章 / 视频投稿(仅本人内容)

mfuns_messages

私信:会话列表 / 聊天记录 / 发送(form+msg 实测可用)

Publishing 投稿

工具

说明

mfuns_publish_video_upload

本地上传视频投稿(阿里云 VOD 断点续传,支持分P;可后台任务化:多P 并行上传 + mfuns_upload_task 查询进度;任务状态落盘,重启自动续传;本地封面自动上传,缺省用平台默认封面)

mfuns_upload_task

视频上传任务查询/管理:status 任务详情(分P进度/投稿结果)/ list 任务列表 / cancel 取消任务

mfuns_publish_video_link

外链视频投稿(视频直链 URL,如复活失效的 B 站外链,支持分P)

mfuns_manage_submission

投稿管理:列表 / 详情 / 更新(文章+视频,分P增改/追加,append_files 本地上传追加分P 走后台任务,draft=true 保持草稿)

Account 账号

工具

说明

mfuns_notifications

通知消息(赞/评论/提及)与未读计数

mfuns_history

浏览历史(避免重复互动)

System 系统

工具

说明

mfuns_account_modify

添加/移除账号(添加支持账密 / Token 导入 / API Key 绑定,自动校验与查重;移除自动回退当前账号)

mfuns_account_list

查看账号组(active 标记当前身份)

mfuns_account_current

查看当前操作身份(发布前确认)

mfuns_account_switch

切换当前账号(校验身份防串号,失败自动回滚)

mfuns_activity_log

查询 Activity Log(按账号与日期隔离,支持指定账号)


Related MCP server: mcp-server-agent-comm

多账号身份管理

业务工具自动使用当前账号,无需传账号参数:

Agent → mfuns_account_switch → current_account → 业务工具 → Mfuns API
  • 每个账号独立:token / api_key / 登录凭据 / Activity Log 目录

  • 防串号:切换时调 /v1/user/info 校验 token 与账号 user_id 一致,不一致拒绝并回滚

  • 懒登录:未配置 token 的账号首次业务调用自动账密登录,token 回写 config

  • 临时 id:未登录账号可用 u_unknown_N,首次登录后自动更新为 u_<user_id>

  • 纯 api_key 账号:身份不可解析(user/info 拒绝 api_key),昵称必填、id 顺序编号(u_1、u_2…),仅用于投稿接口

  • 添加账号可用 mfuns_account_modify(action=add) 在线完成,无需手改配置文件


快速开始

1. 安装依赖

uv sync

2. 配置凭据(多账号组)

复制配置模板并填入账号:

Copy-Item config.json.example config.json
{
  "base_url": "https://api.mfuns.net",
  "accounts": [
    {
      "id": "u_38461",
      "profile": { "user_id": 38461, "user_name": "Sincerely" },
      "auth": {
        "account": "手机号/用户名",
        "password": "密码",
        "token": "登录 token(可选,留空自动登录)",
        "api_key": "官方开放平台密钥 mf_xxx(可选,仅投稿接口用)"
      },
      "enabled": true
    }
  ],
  "runtime": { "current_account": "u_38461" }
}

旧版扁平结构(token/api_key 在顶层)仍兼容:accounts 字段缺失时自动合成为单账号。

3. 启动

uv run main.py                                # stdio(默认,MCP 客户端用)
uv run main.py --transport streamable-http    # Streamable HTTP,默认 127.0.0.1:8000/mcp
uv run main.py --transport streamable-http --host 0.0.0.0 --port 9000
uv run main.py --transport sse                # SSE

启动时向 stderr 打印服务状态与使用说明(stdio 模式下 stdout 仅传输 JSON-RPC 协议)。

4. MCP 客户端接入(opencode 示例)

本地 stdio:

{
  "mcp": {
    "mfuns": {
      "type": "local",
      "command": ["uv", "--directory", "D:\\path\\to\\Mfuns MCP", "run", "main.py"],
      "enabled": true
    }
  }
}

远程 Streamable HTTP:

{
  "mcp": {
    "mfuns-http": {
      "type": "remote",
      "url": "http://127.0.0.1:8000/mcp",
      "enabled": true
    }
  }
}

Activity Log

每次 MCP 工具调用自动记录一条操作日志,按账号与日期隔离为 JSON 文件,不参与 Agent 默认上下文:

logs/activity/
├── u_38461/
│   ├── 2026-08-02.json
│   └── 2026-08-03.json
└── u_17627/
    └── 2026-08-03.json
{
  "time": "02:31:12",
  "tool": "mfuns_read",
  "action": "read",
  "target": { "type": "article", "id": 83888 },
  "params": { "resource_id": 83888 },
  "result": { "status": "success" }
}

通过 mfuns_activity_log(date, tool?, target_id?, account_id?) 按日期 / 工具名 / 对象 ID / 账号查询(默认当前账号)。不存储 LLM 思考与完整上下文;数据量大后可平滑迁移 SQLite / PostgreSQL(结构不变)。


鉴权与限速

机制

说明

会话 token

全局默认鉴权;账密自动登录,token 缓存约 25 天,401 自动重登

官方 API KEY

独立体系,仅用于投稿接口白名单(9 个 /v1/contribute/* + 素材上传);401 自动回退该账号 token

防覆盖

切换/登录只写当前账号字段,不会覆盖其他账号凭证

5 QPS

全局节流(0.25s 最小间隔)

投稿限速

投稿类接口用户级限速(约 2 分钟窗口,与网页端共享),429 消息含剩余等待时间


项目结构

main.py               # 启动入口(stdio / streamable-http / sse)
config.json           # 多账号组配置 + token 缓存(勿提交,已在 .gitignore)
config.json.example   # 配置模板
opencode.json         # opencode 本地 MCP 接入配置示例
mfuns_api_docs.md     # 社区 API 逆向文档(含实测修正标注)
mfuns_mcp/
├── server.py         # MCPServer 构建与入口
├── tools.py          # 23 个 MCP 工具定义
├── upload.py         # 视频上传管线:oss2 断点续传 / 后台任务管理 / 封面与 meta 处理
├── client.py         # HTTP 客户端:多账号上下文 / 自动登录 / 401 重登 / 限速 / 图片上传
├── activity.py       # Activity Log(按账号+日期 JSON 文件 + 工具装饰器)
├── config.py         # 多账号组配置读写与旧结构兼容
└── format.py         # 纯文本↔Quill、HTML→纯文本、时间戳格式化

已知限制

限制

说明

待审核视频不可编辑

video/update 对待审核稿件返回"系统繁忙"(服务端锁定),发布后可更新

视频投稿删除

POST /v1/contribute/video/delete 实测可用(接口未在官方文档公开),mfuns_delete(target_type=video) 已接入

收藏取消需 list_id

收藏夹枚举未暴露为工具,remove 需提供 list_id

官方全站动态流为空

/v1/feeds/list 对该账号无可展示内容,动态流建议用 latest 模式

私信空记录

早期探测产生的空消息无法删除(无删除接口)

上传任务断点续传

任务状态持久化到 logs/upload_tasks/<task_id>/task.json,服务重启后 mfuns_upload_task 首次调用自动恢复未完成任务:已完成分P 跳过、上传中分P 用 update_upload_auth 刷新凭证续传 OSS 检查点、排队分P 继续上传


参考

Available Tools

19 tools
mfuns_activity_logA

查询 Activity Log(每次工具调用的操作记录,按日期隔离的 JSON 文件)。

Args: date: 日期,格式 YYYY-MM-DD(如 2026-08-02) tool: 可选,按工具名过滤(如 mfuns_comment) target_id: 可选,按影响对象 ID 过滤(如帖子/评论 ID 83888)

ParametersJSON Schema
NameRequiredDescriptionDefault
dateYes
toolNo
target_idNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4.4/5.0
Behavior3/5

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

With no annotations, the description must disclose behavior. It explains the log is organized by date as JSON files and that filters are optional, which is useful. However, it doesn't explicitly confirm read-only semantics beyond the word 'query' or mention error handling or permission requirements, leaving some burden unmet.

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 one introductory sentence plus a tight three-item Args list. Everything earns its place with no fluff or repetition, and the main purpose appears first.

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, three-parameter query tool with an output schema, the description covers purpose, parameters, and data organization. No critical context is missing, and the tool's role relative to siblings is distinct.

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 schema provides zero parameter descriptions, but the description's Args section fully compensates: it gives the date format (YYYY-MM-DD), clarifies 'tool' is an optional filter by tool name, and defines 'target_id' as filtering by affected object ID. This exceeds the minimal schema types.

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 queries the Activity Log, a record of every tool call stored as date-separated JSON files. It specifies the resource (Activity Log) and the action (query), and distinguishes it from sibling content-reading tools by focusing on operation logs.

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 implies usage: call this when you need to audit tool operations by date, optionally filtered by tool or target ID. It doesn't explicitly mention alternatives or exclusions, but the unique purpose among siblings makes the context clear.

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

mfuns_browseA

浏览 Mfuns 社区内容流:推荐、热门、全站动态、分类帖子或最新动态。

Args: mode: 内容流模式,可选: recommend=首页推荐, hot=热门榜, feed=全站动态, category=分类帖子列表, latest=最新动态(第三方聚合时间线 mfuns.wgen.top,返回 LLM 优化的 Markdown) category_id: 分类 ID,mode=category 时必填(如 51=交友专区,49=站内互动),其它模式忽略 limit: 返回条数上限,默认 20,最大 100 content_type: 内容类型过滤,仅 mode=latest 有效: all=全部(默认), feed=动态, video=视频, article=文章

ParametersJSON Schema
NameRequiredDescriptionDefault
modeNorecommend
limitNo
category_idNo
content_typeNoall

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4.4/5.0
Behavior4/5

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

The description discloses that 'latest' mode returns LLM-optimized Markdown from a third-party aggregator (mfuns.wgen.top), and that category_id is ignored in non-category modes. It does not explicitly state that the operation is read-only or mention auth/rate limits, but for a browse tool the read-only nature is implied and the markdown detail adds useful context.

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 compact and well-structured: a one-line summary followed by a clean Args list with each parameter on a separate line. Every sentence adds necessary information with no fluff.

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 4 optional parameters and an output schema present, the description covers all parameter semantics, mode-specific behavior, and the special markdown format for latest mode. It lacks error handling details but that is not critical given the tool's simplicity and the presence of an output schema.

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 explains every parameter in detail, including mode options with Chinese translations, category_id requirement and examples (51=交友专区, 49=站内互动), limit defaults/max, and content_type valid values for latest mode. This fully compensates for the schema's 0% description coverage.

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: browsing Mfuns community content streams, and enumerates specific modes (recommend, hot, feed, category, latest). This distinguishes it from sibling tools like mfuns_read_thread (reading a single thread) or mfuns_search (searching).

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

Usage Guidelines3/5

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

The description provides mode-specific guidance (e.g., category_id required for mode=category) but does not explicitly state when to use this tool versus alternatives like mfuns_search or mfuns_read_thread. Usage is implied rather than explicitly contrasted with other tools.

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

mfuns_categoriesA

查询投稿分区树(发布帖子/视频前用 mfuns_categories 选 category_id)。

Args: 无参数:返回完整分区树,叶子分区可投稿,父级分区仅作导航

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4.7/5.0
Behavior4/5

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

With no annotations provided, the description carries the full burden. It discloses that the tool returns the complete category tree (返回完整分区树) and explains the semantic difference between leaf and parent categories (叶子分区可投稿,父级分区仅作导航). This goes beyond a basic query description, though it could mention potential authentication requirements or errors. Still, it is quite informative for a simple read-only tool.

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 exceptionally concise: two short sentences. The first sentence states the purpose and usage context, the second clarifies the parameter situation and return semantics. Every word earns its place, with no filler or redundant 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?

Given the zero-parameter schema, the presence of an output schema, and the tool's simple nature, the description covers all necessary context. It explains what the tool returns, the structural distinction between leaf and parent nodes, and when to use it. The output schema handles detailed return fields, so the description need not elaborate further.

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 tool has 0 parameters, so the baseline is 4. The description explicitly states '无参数' (no parameters), confirming the absence of inputs. Schema coverage is 100% with an empty properties object, so there is no additional parameter information needed.

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 queries the submission category tree (查询投稿分区树) and specifies its purpose: selecting category_id before publishing posts/videos. This specific verb+resource description distinguishes it from sibling tools like mfuns_create_post or mfuns_publish_video.

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 indicates when to use the tool: '发布帖子/视频前用 mfuns_categories 选 category_id' (before publishing posts/videos, use mfuns_categories to select category_id). This provides clear context and implies it is the correct tool for category selection, differentiating it from other submission-related tools.

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

mfuns_commentA

发表评论或回复评论(内容为纯文本,自动转换为论坛格式)。

Args: target_type: 评论对象,可选: article=评论帖子, video=评论视频, feed=评论动态, comment=回复评论 target_id: 文章/视频/动态 ID(target_type=article/video/feed)或评论 ID(target_type=comment) content: 评论/回复内容

ParametersJSON Schema
NameRequiredDescriptionDefault
contentYes
target_idYes
target_typeYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4.6/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 discloses that content is plain text and automatically converted to forum format, which is a useful behavioral trait. It also explains the conditional meaning of target_id based on target_type. It does not discuss auth or rate limits, but for a simple comment tool with an output schema, 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 concise and well-structured: a one-sentence purpose statement followed by a clear Args list. Every sentence adds value, and there is no repetition of schema-encoded information beyond what is needed for clarification.

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's low complexity, the presence of an output schema, and the complete parameter documentation in the description, the description is sufficiently complete. It covers what the tool does, how parameters behave, and a key behavioral conversion detail.

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 0%, but the description fully compensates by explaining each parameter in detail: target_type enumerates valid values and their meanings, target_id is mapped to the correct object type, and content is described as the comment/reply text. This goes well beyond the bare 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?

The description opens with a specific verb and resource: '发表评论或回复评论' (post a comment or reply to a comment), and lists the exact target types (article, video, feed, comment). This clearly distinguishes it from sibling tools like create_post, react, and favorite.

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 the tool by defining target_type options and their meanings. It does not explicitly mention alternatives or exclusions, but the purpose is unambiguous enough that an agent can infer it is for commenting/replies rather than creating posts or reactions.

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

mfuns_create_feedA

发布动态(Feed,全站动态流可见)。

Args: content: 动态内容(纯文本,自动转换为论坛格式) images: 图片 URL 列表(可选) tags: 标签列表(可选,最多 10 个)

ParametersJSON Schema
NameRequiredDescriptionDefault
tagsNo
imagesNo
contentYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A3.6/5.0
Behavior3/5

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

With no annotations provided, the description carries the burden of behavioral disclosure. It adds useful context: content is plain text and auto-converted to forum format, and the feed is visible site-wide. However, it does not mention authentication requirements, whether edits are allowed, rate limits, or error conditions, leaving gaps for a mutation tool.

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 concise and well-structured, with a brief intro and a clear Args list. Every sentence adds value, and the formatting makes it easy to scan. It is slightly repetitive with the parameter names but not wasteful.

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 3-parameter tool with an output schema, the description adequately covers the core purpose and parameter meanings. It lacks explicit usage guidance and differentiation from sibling tools, but given the low complexity, it is mostly complete. The visibility scope and auto-conversion note add helpful context.

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 provides only types and defaults (0% description coverage), so the description steps in. It explains that 'content' is plain text auto-converted to forum format, 'images' are URL lists, and 'tags' are limited to 10. This adds meaningful semantics beyond the schema, though it could be more detailed about formats or constraints.

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 ('发布动态' / publish feed) and resource ('Feed,全站动态流可见' / Feed visible across the site), making the tool's purpose clear. It distinguishes from sibling tools like mfuns_create_post by emphasizing the feed stream visibility, though it doesn't explicitly name the alternative.

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

Usage Guidelines3/5

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

The description implies usage for publishing a feed with optional images and tags, but it does not explicitly state when to use this tool over alternatives like mfuns_create_post or mfuns_publish_video. There are no exclusion criteria or explicit context/conditions.

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

mfuns_create_postA

发布文章帖子(纯文本或 Markdown 正文,服务端自动转换)。

Args: title: 标题(最长 30 字) content: 正文,支持纯文本或 Markdown category_id: 分类 ID(须为叶子分区;传父级分区会自动落到其第一个叶子子分区,缺省则返回可投稿分区提示;如 44=科技综合,51=交友专区) tags: 标签列表,最多 10 个 copyright: 版权,2=原创(默认),1=转载,0=其他 cover: 封面图 https 外链(可选) draft: 是否只存草稿,默认 False 直接投稿

ParametersJSON Schema
NameRequiredDescriptionDefault
tagsNo
coverNo
draftNo
titleYes
contentYes
copyrightNo
category_idNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4.1/5.0
Behavior4/5

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

With no annotations, the description carries full burden. It adds valuable behavioral details: Markdown is auto-converted, category_id falls back to the first leaf child if a parent is given, copyright defaults to 2 (original), and draft=True only saves without publishing. These go beyond the schema, though auth prerequisites and error behavior are not mentioned.

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 opens with a crisp one-sentence purpose, then uses a structured Args list to convey parameter details. Each line is informative and necessary, with no redundant prose. The category example adds practical context without bloat.

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 create operation with an output schema and no annotations, the description covers all parameter semantics and key behavioral defaults (category fallback, draft, copyright). It omits broader context like authentication requirements or when to use it, but the invocation details are sufficiently complete for correct tool use.

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 0%, but the Args section fully compensates. It explains the 30-character title limit, Markdown support, category_id semantics with numeric examples, the 10-tag limit, copyright value mapping, cover URL scheme (https), and draft default behavior. Every parameter receives meaningful elaboration beyond its type.

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 '发布文章帖子' (publish article post), specifying it accepts plain text or Markdown with server-side conversion. This precise verb+resource distinguishes it from sibling tools like mfuns_publish_video and mfuns_create_feed.

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

Usage Guidelines2/5

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

No guidance is provided on when to use this tool versus alternatives. The description simply lists arguments without mentioning use cases, exclusions, or situations where another sibling tool would be more appropriate, leaving the agent to infer from the tool name alone.

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

mfuns_deleteA

删除内容(动态或评论,仅限本人内容)。

Args: target_type: 删除对象,可选: feed=动态, comment=评论 target_id: 对象 ID(动态 ID / 评论 ID)

ParametersJSON Schema
NameRequiredDescriptionDefault
target_idYes
target_typeYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4.2/5.0
Behavior3/5

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

No annotations are provided, so the description bears full responsibility. It discloses the ownership restriction ('仅限本人内容'), which is a key behavioral trait. However, it does not mention irreversibility, side effects, or error behavior for invalid/unauthorized targets, leaving significant transparency gaps.

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 extremely concise: a one-line purpose followed by a two-line args list. It is front-loaded with the action and uses no filler words, making it highly efficient and easy to parse.

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?

The tool has an output schema (though not shown), so return values are not required in the description. It covers the core action and parameters, but lacks critical context like permanence of deletion and error handling. For a delete tool, this is a notable gap, placing it at an adequate but incomplete level.

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 0%, so the description fully compensates by explaining both parameters: target_type enumerates the allowed values (feed=动态, comment=评论) and target_id is defined as the object ID. This adds essential semantics beyond the bare schema types.

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 it deletes content (feed or comment) and restricts to own content. The verb 'delete' is specific, and the resource is defined, differentiating it from sibling read/write tools. It also lists the two possible targets, making the purpose unambiguous.

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 that only the user's own content can be deleted, which is an important usage constraint. However, it does not explicitly mention when to use this tool versus alternatives, though it is the only delete tool among siblings. The ownership limitation is the only usage guidance, but it is helpful.

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

mfuns_favoriteA

收藏 / 取消收藏 / 查询收藏状态。

Args: resource_id: 资源 ID resource_type: 资源类型,可选: article=文章, video=视频 action: 操作,可选: add=收藏(默认), remove=取消收藏, check=查询是否已收藏 list_id: 收藏夹 ID;add 时不传则使用默认收藏夹,remove 时必填

ParametersJSON Schema
NameRequiredDescriptionDefault
actionNoadd
list_idNo
resource_idYes
resource_typeNoarticle

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A3.9/5.0
Behavior3/5

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

With no annotations provided, the description must disclose behavior itself. It explains key behaviors like list_id requirements for add/remove actions and the default list behavior. However, it does not mention what the tool returns, error conditions, idempotency, or side effects beyond the action itself, leaving some transparency gaps.

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 well-structured with a concise summary followed by an Args list. Every sentence provides necessary information, and there is no redundant or filler content.

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 all parameters and basic behaviors, and the presence of an output schema fills return-value details. It lacks explicit usage context and interaction nuances, but for a moderately complex tool, it is largely complete.

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 schema has 0% description coverage, but the description compensates fully by explaining each parameter in detail: resource_id, resource_type with allowed values, action with allowed values, and list_id with default/required conditions. This adds significant meaning beyond the bare 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?

The description clearly states the tool's function as '收藏 / 取消收藏 / 查询收藏状态' (favorite/unfavorite/query favorite status), which is a specific verb+resource. It distinguishes itself from sibling tools like mfuns_react or mfuns_comment by focusing exclusively on favorite operations.

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

Usage Guidelines2/5

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

The description provides no guidance on when to use this tool versus alternatives. It explains how to perform actions (add/remove/check) but does not mention scenarios, prerequisites, or exclusions relative to sibling tools such as mfuns_browse or mfuns_react.

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

mfuns_get_userA

获取用户资料(互动前了解对象:判断是新人还是老用户)。

Args: user_id: 用户 ID

ParametersJSON Schema
NameRequiredDescriptionDefault
user_idYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A3.9/5.0
Behavior3/5

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

No annotations are provided, so the description carries the transparency burden. It hints at the behavioral outcome (determining new vs old user) but does not disclose any side effects, permissions, or response behaviors. The get operation is inherently read-only, but no specific behavioral traits are described beyond the implicit purpose.

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 compact, consisting of one purposeful sentence and a parameter stub. Every word contributes, making it a model of brevity without losing essential information.

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 user-retrieval tool with an output schema, the description covers the core purpose, the intended usage scenario, and the required parameter. It lacks only some peripheral details like error handling, but overall the context 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.

Parameters2/5

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

The description's Args section simply repeats the parameter name and type from the schema ('user_id: 用户 ID') without adding semantic details such as format constraints, source, or examples. With 0% schema coverage, the description fails to compensate, making this redundant.

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 retrieves a user profile ('获取用户资料') and adds the purpose of assessing whether the user is new or old before interaction. This distinguishes it from sibling read tools that target threads, videos, or feeds.

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 explicit usage context: '互动前了解对象' (understand the target before interacting), which tells the agent when to use it. However, it does not mention alternatives or explicitly exclude other tools, so it lacks the when-not guidance.

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

mfuns_historyA

获取浏览历史(了解自己看过什么,避免重复互动)。

Args: resource_type: 过滤资源类型,可选: article=文章, video=视频;不传返回全部 limit: 返回条数上限,默认 50

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNo
resource_typeNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A3.8/5.0
Behavior2/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 of behavioral disclosure. It only states what the tool does (get browsing history) but does not mention whether it is read-only, requires authentication, returns data in chronological order, or any rate limits. This is a minimal behavioral disclosure.

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 compact, with the main purpose front-loaded and the parameter details following in a structured Args block. Every sentence earns its place, and there is no wasted wording.

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 tool with only two optional parameters and an output schema, the description covers the core purpose and parameter semantics. However, it lacks behavioral context such as whether the history is user-specific, how ordering works, or if there are prerequisites. Overall, it is sufficient but not fully complete.

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 provides no descriptions (0% coverage), but the description compensates by explaining both parameters: resource_type (with valid values article/video and default behavior) and limit (with default 50). This adds meaning beyond the raw schema types.

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 retrieves browsing history and explicitly explains its purpose ('了解自己看过什么,避免重复互动'). This is a specific verb+resource combination that distinguishes it from sibling tools like mfuns_browse or mfuns_read_feed.

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

Usage Guidelines3/5

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

The purpose phrase implies when to use it (when checking past viewed content to avoid duplicate interaction), but it does not explicitly mention alternatives or when not to use it. The guidance is implied rather than explicit.

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

mfuns_manage_submissionA

管理我的投稿:查看列表 / 更新文章投稿 / 删除文章投稿。

Args: type: 稿件类型,可选: article=文章, video=视频 action: 操作,可选: list=列表(默认), update=更新, delete=删除 contribute_id: 投稿 ID(update/delete 必填) page: 页码,默认 1 size: 每页数量,默认 20,最大 100 status: 状态过滤(list 可选): 0草稿 1已发布 2待审核 3锁定 4退回修改 5定时发布 title: 新标题(update 必填) content: 新正文(update 必填,纯文本或 Markdown) category_id: 新分类 ID(update 必填) tags: 新标签(update 可选) cover: 新封面(update 可选) draft: 更新后是否保持草稿(update 可选,不传则进入审核队列;草稿稿件更新建议传 true)

ParametersJSON Schema
NameRequiredDescriptionDefault
pageNo
sizeNo
tagsNo
typeNoarticle
coverNo
draftNo
titleNo
actionNolist
statusNo
contentNo
category_idNo
contribute_idNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4/5.0
Behavior3/5

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

没有注释,描述承担行为透明责任。它说明了 update 不传 draft 会进入审核队列、草稿更新建议传 draft=true,以及 status 的数字含义,这些是重要的非显性行为。但未说明 delete 的不可逆性、权限要求或操作失败时的行为,覆盖不完整。

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?

描述采用分条 Args 格式,每行一个参数,信息密度高,先给出总体用途再列细节。虽然篇幅较长,但每个字段都有必要说明,没有冗余内容。

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?

作为多操作管理工具,描述覆盖了 list/update/delete 的参数要求、默认行为、状态过滤和更新审核行为,输出已有 output schema 支持,无需额外说明返回值。整体完整,仅缺少具体调用示例或错误处理说明。

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 覆盖率为 0%,但描述对每个参数给出了含义、默认值、必填条件和可选范围,例如 action 的可选值、status 的枚举含义、draft 的行为影响,完全弥补了 schema 的缺失,甚至提供了超出 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?

描述明确指出'管理我的投稿',并列出 list/update/delete 三种操作及类型参数,能区分于 mfuns_create_post 等兄弟工具。虽然未显式点名替代工具,但用途清晰,足以让智能体理解工具功能。

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?

描述详细说明了各操作的必要参数(update/delete 必填 contribute_id,update 必填 title/content/category_id),并给出 action 默认 list、size 上限等,使用场景清晰。但未提及与 mfuns_delete 或 mfuns_create_post 的明确分工,缺少排除性说明。

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

mfuns_messagesA

查看私信会话列表或与某用户的聊天记录。

Args: action: 操作,可选: list=会话列表(默认), read=读取聊天记录 user_id: 对方用户 ID(action=read 时必填)

ParametersJSON Schema
NameRequiredDescriptionDefault
actionNolist
user_idNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4.1/5.0
Behavior3/5

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

No annotations are provided, so the description carries the burden. The verb '查看' (view) indicates a read-only operation, which is a positive behavioral disclosure. However, it does not mention authentication requirements, pagination behavior, or potential side effects (though likely none exist). For a simple read tool, this is adequate but not rich.

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 compact and front-loaded with a one-sentence overview followed by a clear Args list. No filler; every sentence provides essential information.

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 the tool's simplicity, the description covers the core behavior and parameters. An output schema exists, so return values are presumably defined elsewhere. It lacks explicit notes about auth or pagination, but for a basic private message viewer, it is sufficiently complete.

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 beyond the raw schema. It explains the 'action' parameter's allowed values (list/read) with defaults, and specifies that 'user_id' is required for 'read'. This fully compensates for the 0% schema description coverage and leaves no ambiguity about parameter usage.

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 views private message conversation lists or chat history with a user. It uses a specific verb (view) and resource (private messages), which adequately distinguishes it from sibling tools like mfuns_read_thread (public threads) and mfuns_browse. However, it does not explicitly contrast with alternatives, so it misses the full 'distinguishes from siblings' criterion.

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 Args section provides clear context for usage: action 'list' retrieves conversation lists (default), and 'read' retrieves chat history with a user, requiring user_id. This gives a clear sense of when to use each action though it does not explicitly mention when not to use the tool or compare with alternatives like mfuns_read_thread.

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

mfuns_notificationsA

获取通知消息(收到的赞/评论/提及)与未读计数。

Args: type: 通知类型,可选: like=收到的赞, comment=收到的评论/回复(默认), mention=@提及 page: 页码,默认 1

ParametersJSON Schema
NameRequiredDescriptionDefault
pageNo
typeNocomment

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4.3/5.0
Behavior3/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 discloses the main outputs (notifications and unread count) and parameter semantics, but does not mention potential side effects (e.g., marking notifications as read) or permission requirements. Since it's a 'get' operation, the impact is moderate, but the lack of explicit disclosures keeps it at a 3.

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 concise and well-structured: a single opening line states the purpose, followed by a clean argument list. Every sentence adds value without repetition 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?

The output schema exists, so return values are covered. The description adequately explains the tool's purpose and parameters. It includes unread count, which is a key output. Minor gaps like pagination details or notification behavior when empty could be added, but it's largely complete for a simple retrieval tool.

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 input schema has 0% description coverage, but the description fully compensates by explaining the semantics of `type` (like/comment/mention) and `page` (page number, default 1). This gives the agent clear guidance on parameter values and their meanings.

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 '获取' (obtain) and clearly defines the resource as '通知消息' (notification messages) with received likes/comments/mentions and unread count. This precisely distinguishes it from sibling tools like mfuns_messages by focusing on notification-specific actions.

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 this tool (fetching notifications by type), and explains the type parameter options. However, it does not explicitly mention when not to use it or name alternative tools, though the context is sufficient for most use cases.

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

mfuns_publish_videoA

外链视频投稿(视频直链 URL,如复活失效的 B 站外链视频;不含本地上传)。

Args: title: 标题(最长 30 字) video_url: 视频直链 URL(https) content: 简介(纯文本) category_id: 分类 ID(须为叶子分区;传父级分区会自动落到其第一个叶子子分区,缺省默认 1 动画>MMD.3D 请显式指定;如 20=游戏综合) cover: 封面图 https 外链(可选) copyright: 版权,0=其他(默认,适合转载),1=转载,2=原创 tags: 标签列表,最多 10 个

ParametersJSON Schema
NameRequiredDescriptionDefault
tagsNo
coverNo
titleYes
contentNo
copyrightNo
video_urlYes
category_idNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4.8/5.0
Behavior4/5

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

With no annotations, the description must disclose behavior. It explains category_id fallback behavior, copyright default meanings, and tag limits, which goes beyond the schema. However, it does not mention side effects, authentication, or error behavior, so it falls short of full transparency.

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 compact: one opening sentence plus a bulleted Args list. Each parameter entry provides essential information without redundancy, making it well-structured and efficient.

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 publish tool with 7 params and an output schema, the description covers the purpose, all parameter semantics, and usage constraints. Since the output schema exists, the lack of return-value explanation is acceptable, making the description contextually complete.

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 0%, yet the description meticulously documents all 7 parameters with constraints (e.g., title max 30 chars, video_url https, category leaf behavior, copyright codes, tags max 10). This fully compensates for the missing schema descriptions.

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 '外链视频投稿' (external link video submission) with a specific verb and resource, and distinguishes it from local upload by noting '不含本地上传'. This differentiates it from sibling tools like mfuns_create_post or mfuns_manage_submission.

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 context: '如复活失效的 B 站外链视频' (e.g., reviving invalid Bilibili external link videos) and an explicit exclusion '不含本地上传'. This gives clear when-to and when-not-to use guidance, though no alternative tool is named.

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

mfuns_reactA

对内容点赞 / 取消点赞 / 点踩。

Args: resource_type: 资源类型,可选: article=文章, video=视频, comment=评论, feed=动态 resource_id: 资源 ID action: 操作,可选: like=点赞(默认), cancel=取消点赞, dislike=点踩

ParametersJSON Schema
NameRequiredDescriptionDefault
actionNolike
resource_idYes
resource_typeYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4.1/5.0
Behavior3/5

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

No annotations are provided, so the description carries the burden. It clearly discloses the mutating behavior (like, cancel like, dislike) and implies reversibility through 'cancel', but it does not mention authentication requirements, rate limits, or consequences like public reaction counts. This is adequate but not rich.

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 compact and front-loaded: one summary line followed by a clear Args block. Every line adds necessary parameter semantics with no 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 reaction tool, the description covers all parameters and core behavior, and an output schema exists so return values need no explanation. It omits optional context such as whether cancel also removes dislikes or whether authentication is required, but overall is complete enough.

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 input schema has no descriptions (0% coverage), but the description fully compensates by defining resource_type with labeled options, resource_id, and action with defaults and allowed values. This adds concrete meaning beyond the bare 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?

The description uses specific verbs '点赞/取消点赞/点踩' and lists resource types (article/video/comment/feed), clearly distinguishing it from sibling tools like mfuns_favorite or mfuns_comment. The resource_id and action options further specify the operation.

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

Usage Guidelines3/5

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

The description implies usage via action options (like/cancel/dislike) and resource_type list, but does not explicitly state when to prefer mfuns_react over alternatives such as mfuns_favorite or mfuns_comment. No when/not or alternative guidance is present, so it only reaches implied usage level.

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

mfuns_read_feedA

读取动态详情与评论区。

Args: feed_id: 动态 ID comment_depth: 评论层级,1=只看一楼评论(默认),2=一楼评论加回复 comment_limit: 返回的评论条数上限,默认 30

ParametersJSON Schema
NameRequiredDescriptionDefault
feed_idYes
comment_depthNo
comment_limitNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4.1/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 adds behavioral context by explaining how comment_depth controls the hierarchy (1 vs 2) and how comment_limit caps the number of comments. The read operation is implied non-destructive, though it does not state error handling or permissions.

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 concise and well-structured: a one-line purpose followed by a clean Args list with clear explanations. No redundant or irrelevant information, and every sentence earns its place.

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 is adequate for a simple read operation: it states the purpose and explains all parameters. An output schema exists, so return values are covered. However, it lacks explicit usage guidelines (e.g., when to prefer this over siblings) and does not mention edge cases like invalid feed_id, which would make it fully complete.

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 0%, and the description compensates fully by explaining all three parameters in detail: feed_id is the feed ID, comment_depth specifies the comment nesting level with defaults, and comment_limit caps the returned comments with a default. This adds significant meaning beyond 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 description clearly states the tool reads feed details and comments with a specific verb ('读取') and resource ('动态详情与评论区'). It is unambiguous and matches the tool name, though it does not explicitly distinguish from sibling tools like mfuns_read_thread or mfuns_read_video.

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

Usage Guidelines3/5

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

The description implies usage by explaining the parameters (comment_depth, comment_limit), but it does not explicitly state when to use this tool versus alternatives, nor does it mention any prerequisites or exclusions. Usage context is implied from the operation name and description.

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

mfuns_read_threadA

读取帖子详情与评论区(最常用的读取工具,回复前必读)。

Args: article_id: 文章 ID comment_depth: 评论层级,1=只看一楼评论(默认),2=一楼评论加回复 comment_limit: 返回的评论条数上限,默认 30

ParametersJSON Schema
NameRequiredDescriptionDefault
article_idYes
comment_depthNo
comment_limitNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4.3/5.0
Behavior3/5

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

With no annotations provided, the description carries the burden of behavioral disclosure. It explains the behavior of comment_depth and comment_limit parameters well, but does not disclose other traits such as return format, authentication requirements, or pagination details. For a read-only tool, this is adequate but not rich.

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 front-loaded with a clear purpose and usage context, followed by a compact parameter list. Every sentence is informative, with no unnecessary words or repetition.

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?

An output schema exists, so return values are already covered. The description covers purpose, usage, and all parameters thoroughly. It does not explicitly name alternatives, but for a straightforward read tool, this is reasonably complete.

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 schema description coverage is 0%, and the description fully compensates by explaining each parameter: article_id, comment_depth with its two levels, and comment_limit with default. This adds essential meaning beyond the typed 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?

The description clearly states the tool reads post details and comments, and identifies it as the most commonly used read tool and a must-read before replying. This specific verb+resource distinction separates it from siblings like mfuns_read_video and mfuns_read_feed.

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 phrase '回复前必读' (must read before replying) gives a clear context for when to use this tool, and '最常用的读取工具' (most commonly used read tool) implies it is the default choice for reading. However, it does not explicitly mention alternatives or when not to use it, so it stops short of a 5.

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

mfuns_read_videoA

读取视频详情与评论区。

Args: video_id: 视频 ID comment_depth: 评论层级,1=只看一楼评论(默认),2=一楼评论加回复 comment_limit: 返回的评论条数上限,默认 30

ParametersJSON Schema
NameRequiredDescriptionDefault
video_idYes
comment_depthNo
comment_limitNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4.1/5.0
Behavior3/5

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

With no annotations provided, the description must carry the transparency burden. It discloses the read-only nature via '读取' (read) and explains comment_depth behavior (1=top-level only, 2=with replies). However, it does not describe the return structure, pagination, error handling, or whether the video details and comments are returned together. This leaves several behavioral aspects undisclosed.

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 concise and well-structured: a one-sentence purpose statement followed by a clear Args list. Every line conveys necessary information without redundancy or fluff. The parameter list is easy to scan, and the use of defaults is explicitly noted.

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 the tool has an output schema (though not shown), the description does not need to explain return values. It covers the purpose and all parameter semantics thoroughly. The only gap is the lack of usage guidelines relative to sibling tools, but for a straightforward read operation with three well-documented parameters, it is nearly complete.

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 input schema has 0% description coverage, but the tool description provides detailed meanings for every parameter: video_id as '视频 ID', comment_depth with explicit value semantics (1=top-level, 2=with replies), and comment_limit as the maximum number of comments. This fully compensates for the schema's lack of descriptions, adding real value.

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 purpose: '读取视频详情与评论区' (read video details and comments section). It uses a specific verb+resource structure that distinguishes it from siblings like mfuns_read_feed and mfuns_read_thread, which handle different content types. The scope is unambiguous.

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

Usage Guidelines3/5

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

The description implies this tool is for retrieving a specific video's details and comments, but it does not explicitly contrast with alternative tools like mfuns_read_feed or mfuns_read_thread. There are no 'when to use' or 'when not to use' instructions, leaving the agent to infer context from the tool name alone.

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. 19 tool updatesv0.1.0
    • First observedmfuns_activity_log
    • First observedmfuns_browse
    • First observedmfuns_categories
    • First observedmfuns_comment
    • First observedmfuns_create_feed
    • First observedmfuns_create_post
    • First observedmfuns_delete
    • First observedmfuns_favorite
    • First observedmfuns_get_user
    • First observedmfuns_history
    • First observedmfuns_manage_submission
    • First observedmfuns_messages
    • First observedmfuns_notifications
    • First observedmfuns_publish_video
    • First observedmfuns_react
    • First observedmfuns_read_feed
    • First observedmfuns_read_thread
    • First observedmfuns_read_video
    • First observedmfuns_search

TDQS

A3.9/5.0
Disambiguation4/5

Most tools have distinct purposes, with three separate read tools clearly scoped by resource type (article/video/feed). The main ambiguity is between mfuns_delete and mfuns_manage_submission's delete action, which could confuse agents about which to use for deleting content.

Naming Consistency4/5

All tools share the mfuns_ prefix and mostly follow a verb_noun pattern (e.g., read_thread, create_post, publish_video). A few tools are just nouns (categories, messages, notifications, history, activity_log) and mfuns_delete lacks a noun, which is a minor deviation.

Tool Count4/5

19 tools is slightly above the ideal 3-15 range, but the breadth of the community platform (browsing, reading, creating, managing, social interactions, logs) justifies the count. Each tool addresses a distinct functional area, so it does not feel excessive.

Completeness3/5

Core workflows like browsing, reading, creating, and interacting are well covered, but private messaging is read-only (no send capability) and there is no way to update a feed post. These gaps could cause agent failures in certain interaction scenarios.

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

  • A
    license
    Not graded
    quality
    D
    maintenance
    Enables AI agents to interact with a TikTok-style social video platform, including video upload, live streaming, social interactions, and direct messaging.
    3
    AGPL 3.0
  • A
    license
    Not graded
    quality
    B
    maintenance
    Provides 13 internet platforms as MCP tools for AI agents, enabling read, search, and interaction with services like web, YouTube, Twitter, and Reddit via a production-grade MCP server.
    MIT
  • A
    license
    A
    quality
    A
    maintenance
    Enables AI agents to interact with AgentGram, the social network for AI agents, through native MCP tools for posting, commenting, voting, and managing identity.
    22
    14
    1
    MIT

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/ymltsh/Mfuns_MCP'

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