首页龙虾技能列表 › Library — 技能工具

📚 Library — 技能工具

v1.0.1

[自动翻译] Authorized SansFiction library manager. Adds books to your library, updates reading status, logs progress, and can schedule a daily “how much did you ...

3· 1,716·1 当前·1 累计
by @fgbytes·MIT-0
下载技能包 项目主页
License
MIT-0
最后更新
2026/2/28
安全扫描
VirusTotal
无害
查看报告
OpenClaw
可疑
medium confidence
The skill's stated purpose (manage a SansFiction library) mostly matches its instructions, but there are important inconsistencies and an insecure token-handling recommendation that you should understand before installing.
评估建议
This skill appears to implement the described SansFiction functionality, but do not paste your personal token into chat unless you understand how your platform treats chat history -- that step introduces real risk. Prefer storing the token via a secure platform secret or directly editing ~/.openclaw/openclaw.json yourself rather than sending it in chat. Confirm the skill will not echo the token and that OpenClaw will treat it as a hidden secret. Ask the publisher (or verify on the SansFiction do...
详细分析 ▾
用途与能力
The skill's name/description (SansFiction library manager) aligns with using a SansFiction personal token and calling the service's MCP endpoint. However, the runtime instructions assume use of the OpenClaw CLI (openclaw cron add) without listing that CLI as a required binary — a minor coherence gap. Overall capabilities requested are plausible for the described feature set.
指令范围
The SKILL.md instructs the agent to have the user paste the SANSFICTION_TOKEN 'once' into chat and then persist it into ~/.openclaw/openclaw.json or env vars. This is contradictory and risky: asking the user to paste a secret into chat exposes it to chat logs and platform storage. The document also contains a hard rule 'Never echo the token back or write it into chat logs' which conflicts with the 'paste in this chat' step — the conflict is a practical security concern because the platform may retain chat history. Apart from that, the instructions otherwise stay within the library management scope (search/add/status/log/stats) and call only the documented SansFiction MCP endpoint.
安装机制
This is an instruction-only skill with no install spec and no code files, which minimizes install-time risk. It requires the 'curl' binary (declared). No remote downloads or extracted archives are present.
凭证需求
The skill uses a single primary credential (SANSFICTION_TOKEN), which is appropriate for an API-based library manager. That token is justified by the described read/write operations. Caveat: the SKILL.md's suggested token handling (paste into chat then persist to ~/.openclaw/openclaw.json) increases exposure risk compared with using a secure secret store; also the metadata lists curl as a required binary but the instructions rely on the OpenClaw CLI for cron scheduling without declaring it.
持久化与权限
The skill is not marked always:true (good). It can be invoked autonomously (disable-model-invocation:false), which is the platform default; combined with the ability to schedule a cron job, the skill can cause recurring agent actions (daily check-in). This is reasonable for a reminder feature but increases the impact if the skill were misused, so be cautious about granting it persistent token access.
安全有层次,运行前请审查代码。

License

MIT-0

可自由使用、修改和再分发,无需署名。

运行时依赖

无特殊依赖

版本

latestv1.0.12026/2/3

No changes detected in this version.

● 无害

安装命令 点击复制

官方npx clawhub@latest install sansfiction-library
镜像加速npx clawhub@latest install sansfiction-library --registry https://cn.clawhub-mirror.com

技能文档

What this skill does

  • Library management (auth required): add/remove books, set reading status, log progress, view “currently reading”, and reading stats.
  • Daily check-in: schedule a reminder that asks “How much did you read today?” and then logs what the user reports.

Hard rules

  • Never ask for or store passwords. Use a SansFiction token only.
  • Never echo the token back to the user or write it into chat logs.
  • No side effects without confirmation when the target book is ambiguous (multiple matches).

Setup (one-time) — get the token

If SANSFICTION_TOKEN is missing, do this immediately:

1) Tell the user to open SansFiction → Connect AI Agents and use Manual Token: - Go to: https://sansfiction.com/docs/agents - In Manual Token, click Generate token - Copy the token

2) Ask the user to paste the token once in this chat.

3) Persist it (recommended):

  • In ~/.openclaw/openclaw.json:
- skills.entries.sansfiction-library.apiKey: "" - (this maps to env var SANSFICTION_TOKEN)
  • Or set:
- skills.entries.sansfiction-library.env.SANSFICTION_TOKEN: ""

If you can’t edit config automatically, give the user the exact snippet to paste.


How to talk to SansFiction (MCP over HTTP)

Endpoint:
  • https://sansfiction.com/api/mcp

Use JSON-RPC with Bearer auth.

1) List available tools (discover exact tool names)

```bash curl -s https://sansfiction.com/api/mcp \ -H "Authorization: Bearer $SANSFICTION_TOKEN" \ -H "Content-Type: application/json" \ -d '{"jsonrpc":"2.0","id":1,"method":"tools/list","params":{}}'

2) Call a tool

Replace TOOL_NAME and ARGS with what tools/list returns.

curl -s https://sansfiction.com/api/mcp \ -H "Authorization: Bearer $SANSFICTION_TOKEN" \ -H "Content-Type: application/json" \ -d '{"jsonrpc":"2.0","id":2,"method":"tools/call","params":{"name":"TOOL_NAME","arguments":ARGS}}'

Error handling • If you get 401 Unauthorized, auth is missing/invalid. Ask user to regenerate token and update config. • If tools/list is empty, verify the URL is exactly /api/mcp and auth header is present.

Library management playbook (what to do for each request)

A) Add a book to the user’s library

When user says: “add X” / “put X in my library” 1. Use MCP search tools (discover name via tools/list). Prefer search by: • ISBN (best) → exact match • Title + author 2. If multiple plausible matches: • Show up to 5 options with distinguishing details (author, year, edition, pages/publisher if available). • Ask the user to pick one. 3. Call the “add to library” tool. 4. Confirm: • Book added • Current status (ask if they want “to-read” vs “reading”)

B) Set reading status

When user says: “mark as reading/finished/paused/abandoned” 1. Resolve the book (same matching rules as above). 2. Call the “set status” tool with the exact status enum required by SansFiction. • If the server rejects your status string, use the allowed values from the error/tool schema and retry. 3. Confirm the new status.

C) Log progress

When user says: “I read 20 pages” / “I’m at page 150” / “read 30 minutes” 1. Ask which book if not explicitly stated AND they have more than one active book. 2. Call the “log progress” / “update progress” tool. • Prefer page number if provided. • Otherwise log pages read or minutes read, whichever the tool supports. 3. Confirm what was recorded (book + new page/progress + date).

D) List currently reading

When user says: “what am I reading?” / “list currently reading” 1. Call the “list library” tool filtered to “currently reading”. 2. Return: • Title + author • Current progress (page/% if available)

E) Stats

When user asks: “monthly stats”, “how many books this year” 1. Call the “stats” tool(s). 2. Summarize clearly (books finished, pages/minutes, streak if available).

Daily reading reminder (cron)

Goal: once per day, ask:

“How much did you read today? Reply with: book (optional), pages or minutes, and current page if you know it.”

Turn it on

If the user asks for the reminder (or says “enable daily check-in”): 1. Schedule a cron job (timezone: Europe/Warsaw) at a reasonable default (21:00 local), unless the user specifies a time.

CLI example:

openclaw cron add \ --name "SansFiction reading check-in" \ --cron "0 21 *" \ --tz "Europe/Warsaw" \ --session isolated \ --message "Reading check-in: how much did you read today? Reply with pages/minutes and (optionally) which book + your current page." \ --deliver \ --channel last

What to do when the user replies

Treat their reply as a progress log: • Parse pages/minutes and optional book/current page. • If book is missing/ambiguous, ask one quick follow-up. • Then log progress via MCP and confirm.

Turn it off

If the user says “disable reading reminder”: • Remove the cron job named SansFiction reading check-in.

User-facing examples (how users can invoke this skill) • “/sansfiction-library add Project Hail Mary” • “/sansfiction-library mark Dune finished” • “/sansfiction-library log Dune page 150” • “/sansfiction-library what am I currently reading?” • “/sansfiction-library enable daily reading reminder at 20:30”

Sources used: SansFiction MCP endpoint + token flow oai_citation:0‡SansFiction, OpenClaw skill frontmatter/metadata + config injection oai_citation:1‡OpenClaw, OpenClaw cron scheduling (for the daily reminder) oai_citation:2‡OpenClaw.

数据来源:ClawHub ↗ · 中文优化:龙虾技能库
OpenClaw 技能定制 / 插件定制 / 私有工作流定制

免费技能或插件可能存在安全风险,如需更匹配、更安全的方案,建议联系付费定制

了解定制服务