Skip to main content
Glama
wlhtea

404K Knowledge Planet MCP Server

by wlhtea

404K Knowledge Planet MCP Server

CI License: MIT

通过 Model Context Protocol(MCP)让 Claude Desktop、Codex、Cursor 和其他 MCP 客户端读取 404k.wlhtea.xyz 上的私有知识星球归档。

MCP Server 不持有知识星球 Cookie,也不直接访问知识星球。它只使用独立的 API Token 请求:

https://404k.wlhtea.xyz/api/v1

功能

  • 查看最近同步状态和当前话题数量;

  • 分页浏览历史话题;

  • 搜索标题、正文和标签,并排除指定关键词;

  • 精确匹配一个或多个标签,支持任一/全部匹配;

  • 排除指定标签;

  • 按北京时间今天、最近 24 小时、3 天、7 天或自定义日期筛选;

  • 独立组合精华、图片和附件条件;

  • 按最新、最早、阅读量或点赞量排序;

  • 按话题 ID 获取完整正文;

  • 返回本站受保护的图片、PDF 和附件地址;

  • 所有请求通过 Authorization: Bearer 鉴权。

提供的工具(当前版本 1.1.0):

zsxq_status
zsxq_list_topics
zsxq_search_topics
zsxq_get_topic

Related MCP server: RAG MCP Server

安装

要求 Node.js 20 或更高版本。

从 GitHub 安装:

git clone https://github.com/wlhtea/zsxq-mcp-server.git
cd zsxq-mcp-server
npm ci
npm link

从发布的 .tgz 安装:

npm install -g ./wlhtea-zsxq-mcp-server-1.1.0.tgz

本仓库内直接运行:

cd mcp-server
npm ci
ZSXQ_API_TOKEN="YOUR_API_TOKEN" npm start

环境变量

名称

必填

默认值

说明

ZSXQ_API_TOKEN

朋友专用 API Token

ZSXQ_API_BASE_URL

https://404k.wlhtea.xyz

数据 API 所在网站

ZSXQ_API_TIMEOUT_MS

30000

单次请求超时

不要把真实 Token 提交到 Git;.env.example 只保留占位符。

Claude Desktop 配置

{
  "mcpServers": {
    "zsxq-404k": {
      "command": "node",
      "args": ["/ABSOLUTE_PATH/zsxq-mcp-server/src/index.js"],
      "env": {
        "ZSXQ_API_BASE_URL": "https://404k.wlhtea.xyz",
        "ZSXQ_API_TOKEN": "YOUR_API_TOKEN"
      }
    }
  }
}

Codex 配置

安装后可以直接注册到 Codex:

codex mcp add zsxq-404k \
  --env ZSXQ_API_BASE_URL=https://404k.wlhtea.xyz \
  --env ZSXQ_API_TOKEN=YOUR_API_TOKEN \
  -- zsxq-mcp-server

也可以在 ~/.codex/config.toml 中添加:

[mcp_servers.zsxq-404k]
command = "node"
args = ["/ABSOLUTE_PATH/zsxq-mcp-server/src/index.js"]

[mcp_servers.zsxq-404k.env]
ZSXQ_API_BASE_URL = "https://404k.wlhtea.xyz"
ZSXQ_API_TOKEN = "YOUR_API_TOKEN"

验证:

codex mcp get zsxq-404k
codex mcp list

API 调试

curl 'https://404k.wlhtea.xyz/api/v1/status' \
  -H 'Authorization: Bearer YOUR_API_TOKEN'

curl 'https://404k.wlhtea.xyz/api/v1/topics?offset=0&limit=20' \
  -H 'Authorization: Bearer YOUR_API_TOKEN'

curl 'https://404k.wlhtea.xyz/api/v1/topics?q=AI&limit=20' \
  -H 'Authorization: Bearer YOUR_API_TOKEN'

curl --get 'https://404k.wlhtea.xyz/api/v1/topics' \
  -H 'Authorization: Bearer YOUR_API_TOKEN' \
  --data-urlencode 'q=AI' \
  --data-urlencode 'tag=大模型' \
  --data-urlencode 'tag=算力' \
  --data-urlencode 'tagMode=all' \
  --data-urlencode 'excludeTag=广告' \
  --data-urlencode 'timeRange=7d' \
  --data-urlencode 'hasFiles=true' \
  --data-urlencode 'sort=readers' \
  --data-urlencode 'limit=20'

搜索和筛选

zsxq_search_topics 接受以下参数;除 query 外,其余参数也可用于 zsxq_list_topics

参数

类型

默认值

说明

query

string

必填

搜索标题、正文和标签

excludeQuery

string

排除搜索文本中包含该关键词的话题

tags

string[]

[]

精确标签,最多 20 个

tagMode

any | all

any

多标签匹配任意一个或全部

excludeTags

string[]

[]

命中任一精确标签即排除

timeRange

all | today | 24h | 3d | 7d

all

北京时间今天或滚动时间窗口

startDate

string

YYYY-MM-DD 或带时区 ISO 8601 时间

endDate

string

日期格式包含北京时间当天

filter

all | digest | image | file | image_and_file

all

兼容的快捷类型筛选

digested

boolean

可与图片、附件条件组合

hasImages

boolean

要求包含或不包含图片

hasFiles

boolean

要求包含或不包含 PDF/附件

sort

newest | oldest | readers | likes

newest

排序方式

offset

integer

0

分页偏移

limit

integer

20

返回数量,最大 50

startDateendDate 会覆盖 timeRange 对应的同侧边界。日期值 YYYY-MM-DDAsia/Shanghai 解释;endDate 会包含当天 23:59:59.999

示例自然语言请求:

搜索近 7 天标签同时包含“大模型”和“算力”、带附件的内容,按阅读量排序。
搜索“英伟达”,排除“广告”标签和“推广”关键词,只看精华且同时有图片和附件。
列出 2026-07-01 到 2026-07-31 的半导体标签内容,按最早时间排序。

OpenAPI 3.1 文档:

https://404k.wlhtea.xyz/api/v1/openapi.json

OpenAPI 文档本身也需要相同的 Bearer Token。

测试

npm test

License

MIT

Security

MCP Server 只需要 ZSXQ_API_TOKEN,不需要也不接受知识星球 Cookie。不要把 真实 Token 提交到 Git、Issue、日志或截图中,详见 SECURITY.md

Available Tools

4 tools
zsxq_get_topic读取完整知识星球话题A

按话题 ID 获取完整正文、分段作者、图片、PDF/附件本站地址和原文链接。

ParametersJSON Schema
NameRequiredDescriptionDefault
idYes话题 ID

TDQS

A3.8/5.0
Behavior3/5

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

No annotations provided, so description carries full burden. It accurately describes the read operation and returned data but does not disclose potential errors, rate limits, or idempotency. Lacks depth but is not misleading.

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?

Single sentence, concise and to the point. No redundant information. Efficiently communicates the tool's function.

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 simple nature of the tool (one parameter, no output schema), the description adequately covers the return values by listing the types of data retrieved. It could mention if the response is structured or paginated, but is sufficient for a get-by-ID operation.

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?

Schema coverage is 100% with a single parameter 'id' described as '话题 ID'. The description does not add additional meaning to the parameter beyond the schema, but the overall tool purpose is clear. 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 clearly states the verb ('获取'), the resource ('话题'), and the specific data retrieved (complete content, segmented authors, images, PDF/attachment addresses, original link). It effectively distinguishes this from sibling tools which are for status, listing, and 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?

No explicit guidance on when to use this tool versus alternatives. The need for a specific topic ID is implied by the required parameter, but there is no mention of when not to use it or references to sibling tools.

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

zsxq_list_topics浏览知识星球话题A

按时间倒序分页浏览已同步的话题。默认返回摘要;需要正文时使用 zsxq_get_topic。

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNo返回数量,最大 50
filterNo全部、精华、含图片或含附件all
offsetNo从第几条开始,默认 0

TDQS

A4.2/5.0
Behavior4/5

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

No annotations provided, so description carries full burden. It discloses ordering, pagination, and summary default, which are key behavioral traits. No contradictions.

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: first defines purpose, second gives alternative. Every word earns its place. Front-loaded and efficient.

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 list tool with 3 params and no output schema, the description covers ordering, pagination, summary vs full, and sibling tool. Missing minor details about filter enum, but schema covers those.

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?

Schema coverage is 100%, so baseline is 3. Description does not add extra meaning beyond schema for limit, filter, offset parameters.

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 clearly states the tool browses synchronized topics in reverse chronological order with pagination, and distinguishes from sibling zsxq_get_topic for full content.

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?

Explicitly says to use zsxq_get_topic for full content when summary is insufficient, implying this tool is for summaries. No explicit when-not-to-use, but context is clear.

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

zsxq_search_topics搜索知识星球话题A

搜索话题标题和正文,返回相关话题摘要、ID 和统计信息。可再按 ID 获取完整正文。

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNo
queryYes搜索关键词
filterNoall
offsetNo

TDQS

A3.5/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 states the tool searches and returns summary, ID, and statistics, indicating a read-only behavior. However, it does not disclose details like pagination (limit, offset) or filtering (filter), nor mention any side effects or authentication needs. The behavioral disclosure 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 concise with two sentences, no wasted words. The first sentence front-loads the main action (search and return summary/ID/stats), and the second provides a logical follow-up action (retrieve full content by ID). Structure is efficient.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool has 4 parameters (query, limit, offset, filter) and no output schema, the description is incomplete. It does not explain how to control result volume (limit, offset) or filtering (filter), which are important for a search tool. The sibling tools provide context but the description itself lacks completeness.

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?

Schema coverage is low (25%, only query has a description). The description adds no semantics for parameters like limit, offset, or filter beyond the schema's minimal info. It does not explain how these parameters affect the search, nor does it compensate 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 the tool searches topic titles and content, returns summary, ID, and statistics. It distinguishes itself from siblings: zsxq_list_topics (list all) and zsxq_get_topic (get by ID), and zsxq_status (status). The verb '搜索' (search) and resource '话题' (topics) are specific.

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 searching topics by query, which is distinct from listing or retrieving a single topic, but it does not explicitly state when to use this tool versus alternatives or provide any exclusions or prerequisites.

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

zsxq_status知识星球数据状态A

查看知识星球归档的最后同步时间、话题数量、媒体统计和源登录态剩余时间。

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

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 must disclose behavioral traits. It lists returned data fields, indicating a read operation, but does not explicitly state idempotency, auth requirements, or side effects. The description is moderately transparent.

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?

A single sentence that is concise and front-loaded with the purpose. It could be more structured, but it is efficient and contains no fluff.

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 no output schema, the description adequately enumerates the key returned items (sync time, topic count, media stats, login status). This is sufficient for a simple status tool.

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 zero parameters, and schema coverage is 100%. The description adds value by explaining what the tool returns, which is more than necessary given no parameters. Baseline is 4.

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 specific status information (last sync time, topic count, media statistics, login status) about the knowledge planet archive. It is distinct from sibling tools (list, search, get topic) which operate on individual topics.

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 checking archive status, but does not explicitly state when to use this tool over siblings or provide exclusions. It is adequate but lacks explicit guidance.

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. 4 tool updatesv1.0.0
    • First observedzsxq_get_topic
    • First observedzsxq_list_topics
    • First observedzsxq_search_topics
    • First observedzsxq_status

TDQS

A4/5.0

Scored across 4 tools

Disambiguation5/5

Each tool has a distinct and clearly defined purpose: status info, topic listing, searching, and retrieving full topic content. No overlap or ambiguity.

Naming Consistency4/5

All tools share the 'zsxq_' prefix, and most follow a verb_noun pattern (list_topics, search_topics, get_topic). The 'zsxq_status' tool uses a noun instead of a verb, which is a minor inconsistency but still clear.

Tool Count5/5

With 4 tools, the server is well-scoped for a read-only knowledge planet browser. Each tool serves a necessary function without excess or deficiency.

Completeness5/5

The tool set covers the full lifecycle for browsing a knowledge planet archive: checking sync status, listing, searching, and retrieving full content. No obvious missing operations for the intended use case.

Maintenance

ActivitySlowing
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
    B
    quality
    B
    maintenance
    An MCP server that provides searchable local storage for Claude conversation history, featuring automatic topic extraction and weekly insight summaries. It enables Claude to retrieve context from past sessions through full-text search and organized file storage.
    10
    3
    MIT
  • A
    license
    Not graded
    quality
    D
    maintenance
    Enables Claude Desktop to search custom knowledge bases using retrieval-augmented generation via a simple MCP tool.
    MIT
  • F
    license
    D
    quality
    C
    maintenance
    Enables Claude Desktop to securely search and retrieve knowledge from an Obsidian vault through a stateless MCP interface, with progressive disclosure and gated write capabilities.
    13
    -
  • A
    license
    Not graded
    quality
    B
    maintenance
    An MCP server that enables Claude to search, retrieve, and contribute to a community-driven archive of AI-generated solutions, notes, skills, and tools, fostering knowledge sharing among AI agents.
    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/wlhtea/zsxq-mcp-server'

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