fa-mcp-sdk 0.4.57 → 0.4.58
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/cli-template/.claude/skills/readme-generator/SKILL.md +50 -15
- package/cli-template/.claude/skills/readme-generator/reference/best-practices.md +30 -0
- package/cli-template/.claude/skills/readme-generator/reference/templates.md +106 -3
- package/cli-template/package.json +1 -1
- package/package.json +1 -1
|
@@ -30,6 +30,26 @@ Three-level information hierarchy:
|
|
|
30
30
|
Level 1 and 2 live in the main README. Level 3 content longer than ~15 lines moves to satellite
|
|
31
31
|
Markdown files under `readme-docs/`. The main README stays scannable; deep detail is one click away.
|
|
32
32
|
|
|
33
|
+
### Scannability devices: Quick Links + collapsible blocks
|
|
34
|
+
|
|
35
|
+
Two devices keep the main README scannable even when it carries substantial inline content:
|
|
36
|
+
|
|
37
|
+
- **Quick Links** — a short navigation block right after the badges, pointing to the *major* sections
|
|
38
|
+
a reader is likely to jump to. Include only headline topics (Tools, Quick Start, MCP Client
|
|
39
|
+
Integration, Key Features, Configuration, Build & Run, Authentication, and any enabled feature
|
|
40
|
+
sections that have their own heading — Impersonation, Admin Panel, Webhooks, Agent Tester, Skills,
|
|
41
|
+
etc.). Do **not** dump a full TOC: secondary headings such as Overview, Transports, Stack, License
|
|
42
|
+
stay out; minor sub-subsections stay out. Rule of thumb: 8–14 links, never more.
|
|
43
|
+
- **Collapsible `<details>` blocks** — wrap content that *must* appear inline (so the `doc://readme`
|
|
44
|
+
RAG pipeline picks it up as part of the main document) but whose volume would drown neighbouring
|
|
45
|
+
sections on a casual scroll. The canonical case is the grouped Tools table (often 100+ rows across
|
|
46
|
+
a dozen sub-tables). Use `<details>` when all three hold: (1) content belongs in this section,
|
|
47
|
+
(2) it is long enough to push everything below off-screen, (3) a casual reader doesn't need every
|
|
48
|
+
row right away. Do **not** use `<details>` for content readers need at a glance (Quick Start
|
|
49
|
+
commands, Key Features bullets, the compact Configuration Basics table, Integration snippets).
|
|
50
|
+
See `reference/templates.md` for the required markup (the `<br>` after `</summary>` is mandatory —
|
|
51
|
+
GitHub won't render the first child block correctly without it).
|
|
52
|
+
|
|
33
53
|
## The `readme-docs/` folder is load-bearing
|
|
34
54
|
|
|
35
55
|
Satellite Markdown files **must** live in `readme-docs/` at the project root. The fa-mcp-sdk
|
|
@@ -140,21 +160,26 @@ Canonical section order. Include only sections backed by actual findings; omit a
|
|
|
140
160
|
|
|
141
161
|
1. **Title + one-line description** (from `package.json`)
|
|
142
162
|
2. **Badges** — build, license, language, key stack badges via shields.io
|
|
143
|
-
3. **
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
163
|
+
3. **Quick Links** — 8–14 anchor links to the major sections only (see *Scannability devices*
|
|
164
|
+
above for the inclusion rule and `reference/templates.md` for the canonical block)
|
|
165
|
+
4. **Overview** — 2–4 sentences. Answers: what is this, for whom, core value
|
|
166
|
+
5. **Tools** — grouped table, `## Tools (<count>)` with per-domain `###` subsections.
|
|
167
|
+
Wrap the whole tool-group listing in a `<details>` block (see the *collapsible blocks* rule
|
|
168
|
+
above). The `## Tools (<count>)` heading itself stays *outside* the block so it is visible on
|
|
169
|
+
scroll and anchor-linkable from Quick Links
|
|
170
|
+
6. **Quick Start** — install, run, minimal verification (3 short steps)
|
|
171
|
+
7. **MCP Client Integration** — Claude Code (HTTP), Claude Desktop (STDIO + `mcp-remote` /
|
|
147
172
|
direct STDIO), Qwen Code. Use the server's actual custom header names
|
|
148
173
|
(e.g. `x-jira-token`, `x-wiki-username`)
|
|
149
|
-
|
|
150
|
-
|
|
174
|
+
8. **Key Features** — 5–8 bullets. Include enabled SDK subsystems and project-specific capabilities
|
|
175
|
+
9. **Transports** — short bulleted list with endpoints (`/mcp`, `/api/*`, `/docs`, `/health`,
|
|
151
176
|
`/admin`, `/agent-tester`, STDIO for Claude Desktop)
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
177
|
+
10. **Configuration Basics** — 5–10 most important keys in a compact table; link to
|
|
178
|
+
`readme-docs/configuration.md` when the full reference is long
|
|
179
|
+
11. **Build & Run / Deployment** — minimal commands, environment variables
|
|
180
|
+
12. **Authentication** — 2–4 sentences + link to `readme-docs/authentication.md` (satellite is mandatory
|
|
156
181
|
when non-trivial auth is present)
|
|
157
|
-
|
|
182
|
+
13. **Feature sections (dynamic)** — one short subsection per enabled optional subsystem and per
|
|
158
183
|
notable project-specific capability. Each: 2–3 sentences + link to its `readme-docs/*.md` when a
|
|
159
184
|
satellite is warranted. Typical candidates:
|
|
160
185
|
- Consul service discovery → `readme-docs/consul.md`
|
|
@@ -167,10 +192,13 @@ Canonical section order. Include only sections backed by actual findings; omit a
|
|
|
167
192
|
- Impersonation → `readme-docs/impersonation.md`
|
|
168
193
|
- Project-specific: fuzzy resolution, caching strategy, API version detection, batch limits,
|
|
169
194
|
content-format conversion, etc. → `readme-docs/<topic>.md` as appropriate
|
|
170
|
-
|
|
195
|
+
|
|
196
|
+
Anchor rule: any feature section that is referenced from **Quick Links** must live at `##` level
|
|
197
|
+
(not `###`), so the anchor resolves from the top of the document.
|
|
198
|
+
14. **Skills** — short paragraph linking to `readme-docs/SKILLS.md` (kept under `readme-docs/`
|
|
171
199
|
so it is picked up as a satellite and assembled into the `doc://readme` resource)
|
|
172
|
-
|
|
173
|
-
|
|
200
|
+
15. **Stack** — 4–7 bullets: framework (`fa-mcp-sdk`), transport, language, key libs
|
|
201
|
+
16. **License**
|
|
174
202
|
|
|
175
203
|
### Step 4 — Generate `README.md`
|
|
176
204
|
|
|
@@ -211,7 +239,14 @@ to it from the main README's **Skills** section.
|
|
|
211
239
|
Run through this checklist before declaring done:
|
|
212
240
|
|
|
213
241
|
- [ ] Canonical section order followed; no empty headings
|
|
214
|
-
- [ ]
|
|
242
|
+
- [ ] **Quick Links** block is present, sits right after the badges, has 8–14 entries covering
|
|
243
|
+
only major sections, and every anchor resolves to an existing `##` heading in the file
|
|
244
|
+
- [ ] **Tools** section is wrapped in `<details><summary>Expand to view ...</summary><br>` with
|
|
245
|
+
the heading `## Tools (<count>)` kept *outside* the block
|
|
246
|
+
- [ ] No `<details>` used to hide content readers need at a glance (Quick Start commands,
|
|
247
|
+
Key Features, Configuration Basics table, Integration snippets)
|
|
248
|
+
- [ ] Every section in the main README is ≤ ~40 lines (or wrapped in `<details>`, or split into
|
|
249
|
+
a satellite)
|
|
215
250
|
- [ ] Tool count in the `## Tools (<count>)` heading matches the table
|
|
216
251
|
- [ ] Every satellite link resolves to an existing file in `readme-docs/`
|
|
217
252
|
- [ ] No satellite file for a disabled feature
|
|
@@ -32,6 +32,36 @@
|
|
|
32
32
|
2. Why should I use it?
|
|
33
33
|
3. How do I get started?
|
|
34
34
|
|
|
35
|
+
### Progressive disclosure
|
|
36
|
+
|
|
37
|
+
A long README is fine — a *cluttered* one is not. Two devices shrink perceived volume without
|
|
38
|
+
dropping information the RAG pipeline needs:
|
|
39
|
+
|
|
40
|
+
- **Quick Links** right after the badges. List only the major `##` sections (8–14 entries),
|
|
41
|
+
never a full TOC. The reader who knows what they want jumps; the reader who is browsing
|
|
42
|
+
ignores the list and keeps scrolling.
|
|
43
|
+
- **`<details>` collapsible blocks** for sections that *must* live inline but would otherwise
|
|
44
|
+
dominate the page — the canonical case is a grouped tool listing that runs 100+ lines. The
|
|
45
|
+
heading stays visible and anchor-linkable; the bulk is one click away.
|
|
46
|
+
|
|
47
|
+
Reach for `<details>` only when the content (a) belongs in this section, (b) is long enough to
|
|
48
|
+
push the next section off-screen, and (c) is not needed at a glance. Do *not* hide Quick Start
|
|
49
|
+
commands, Key Features bullets, a compact config table, or integration snippets.
|
|
50
|
+
|
|
51
|
+
Required markup (GitHub Markdown):
|
|
52
|
+
|
|
53
|
+
```markdown
|
|
54
|
+
<details><summary>Expand to view <what is inside></summary><br>
|
|
55
|
+
|
|
56
|
+
|
|
57
|
+
<bulky content>
|
|
58
|
+
|
|
59
|
+
</details>
|
|
60
|
+
```
|
|
61
|
+
|
|
62
|
+
The `<br>` after `</summary>` is mandatory — GitHub otherwise collapses the first child block
|
|
63
|
+
against the summary line.
|
|
64
|
+
|
|
35
65
|
### Use Headings Effectively
|
|
36
66
|
|
|
37
67
|
```markdown
|
|
@@ -38,6 +38,47 @@ Prefer shields.io. Include only badges that are meaningful (skip build status if
|
|
|
38
38
|
|
|
39
39
|
---
|
|
40
40
|
|
|
41
|
+
## 2a. Quick Links
|
|
42
|
+
|
|
43
|
+
Navigation block for the main README. Sits immediately after the badges, before **Overview**. Lists
|
|
44
|
+
only the major sections a reader is likely to jump to — never a full TOC.
|
|
45
|
+
|
|
46
|
+
**Inclusion rule.** Include a link for every `##` section that is either (a) one of the headline
|
|
47
|
+
topics below, or (b) a dynamic feature section produced in Step 3 of the workflow (Impersonation,
|
|
48
|
+
Admin Panel, Webhooks, Agent Tester, Consul, Active Directory, Database, …). Exclude Overview,
|
|
49
|
+
Transports, Stack, License, and every `###` sub-subsection. Target 8–14 entries.
|
|
50
|
+
|
|
51
|
+
```markdown
|
|
52
|
+
## Quick Links
|
|
53
|
+
|
|
54
|
+
- [Tools](#tools)
|
|
55
|
+
- [Quick Start](#quick-start)
|
|
56
|
+
- [MCP Client Integration](#mcp-client-integration)
|
|
57
|
+
- [Key Features](#key-features)
|
|
58
|
+
- [Configuration](#configuration-basics)
|
|
59
|
+
- [Build & Run](#build--run)
|
|
60
|
+
- [Authentication](#authentication)
|
|
61
|
+
- [Impersonation](#impersonation)
|
|
62
|
+
- [Admin Panel](#admin-panel)
|
|
63
|
+
- [Webhooks](#webhooks)
|
|
64
|
+
- [Agent Tester + Headless Agent Tester API](#agent-tester)
|
|
65
|
+
- [Claude Code Skills](#claude-code-skills)
|
|
66
|
+
```
|
|
67
|
+
|
|
68
|
+
**Anchor-slug rules (GitHub Markdown).**
|
|
69
|
+
|
|
70
|
+
- Lowercase the heading, replace spaces with `-`, strip punctuation (`,`, `.`, `:`, `?`, `!`, `()`).
|
|
71
|
+
- `&` is dropped entirely and produces a double dash — `Build & Run` → `#build--run`.
|
|
72
|
+
- `+` is dropped — `Agent Tester + Headless API` → `#agent-tester--headless-api`.
|
|
73
|
+
- If the Quick Links label diverges from the exact heading text, anchor to the heading, not the
|
|
74
|
+
label (label is for humans, anchor must match the section's slug).
|
|
75
|
+
- When two headings collide (e.g. two `## Configuration`), GitHub appends `-1`, `-2`; avoid that by
|
|
76
|
+
using distinct headings.
|
|
77
|
+
|
|
78
|
+
Verify every anchor resolves after assembly — dead Quick Links are worse than no Quick Links.
|
|
79
|
+
|
|
80
|
+
---
|
|
81
|
+
|
|
41
82
|
## 3. Overview
|
|
42
83
|
|
|
43
84
|
2–4 sentences. Answer: *what is this / for whom / core value*. Active voice. No marketing fluff.
|
|
@@ -56,23 +97,41 @@ distinguishing features>. Use it when you need <primary use case>.
|
|
|
56
97
|
|
|
57
98
|
Group by domain. Keep rows short — one-line descriptions only.
|
|
58
99
|
|
|
59
|
-
|
|
100
|
+
The full grouped listing is wrapped in a `<details>` block so it doesn't dominate the page on first
|
|
101
|
+
scroll. The `## Tools (<N>)` heading itself stays *outside* the block — it must remain visible and
|
|
102
|
+
anchor-linkable from **Quick Links**.
|
|
103
|
+
|
|
104
|
+
````markdown
|
|
60
105
|
## Tools (<N>)
|
|
61
106
|
|
|
107
|
+
<details><summary>Expand to view detailed list of tools</summary><br>
|
|
108
|
+
|
|
109
|
+
|
|
110
|
+
All tool names are prefixed with `<prefix>_`. Tools can be selectively enabled via
|
|
111
|
+
`<upstream>.usedInstruments` — see [Configuration](./readme-docs/configuration.md).
|
|
112
|
+
|
|
62
113
|
### <Domain 1>
|
|
114
|
+
|
|
63
115
|
| Tool | Description |
|
|
64
116
|
|-----------------------|----------------------------------------------------|
|
|
65
117
|
| `<tool_name>` | <Short description, verb-first, ≤ 80 chars> |
|
|
66
118
|
| `<tool_name>` | <Short description> |
|
|
67
119
|
|
|
68
120
|
### <Domain 2>
|
|
121
|
+
|
|
69
122
|
| Tool | Description |
|
|
70
123
|
|-----------------------|----------------------------------------------------|
|
|
71
124
|
| `<tool_name>` | <Short description> |
|
|
72
|
-
```
|
|
73
125
|
|
|
74
|
-
|
|
126
|
+
</details>
|
|
127
|
+
````
|
|
75
128
|
|
|
129
|
+
Formatting rules specific to this block:
|
|
130
|
+
|
|
131
|
+
- `<br>` immediately after `</summary>` is **mandatory** — without it GitHub collapses the first
|
|
132
|
+
child block against the summary line.
|
|
133
|
+
- Keep one blank line between `<summary>` and the first `###` subsection, and one blank line
|
|
134
|
+
before `</details>`.
|
|
76
135
|
- Column widths consistent within the file.
|
|
77
136
|
- Tool names always inline-code.
|
|
78
137
|
- If a tool has a caveat (e.g. server vs. cloud behaviour), use a footnote `*` and explain below
|
|
@@ -383,3 +442,47 @@ Details, launch modes, and examples: [SKILLS](./readme-docs/SKILLS.md).
|
|
|
383
442
|
|
|
384
443
|
<License name> © <Owner>. See [LICENSE](./LICENSE).
|
|
385
444
|
```
|
|
445
|
+
|
|
446
|
+
---
|
|
447
|
+
|
|
448
|
+
## 16. Collapsible `<details>` block (generic pattern)
|
|
449
|
+
|
|
450
|
+
Use this pattern for any section where the content is important enough to stay inline (so the
|
|
451
|
+
`doc://readme` RAG pipeline captures it) but bulky enough to drown neighbouring sections on a
|
|
452
|
+
casual scroll. Canonical use: the Tools listing (see section 4). Other legitimate uses: long
|
|
453
|
+
example request/response matrices, exhaustive troubleshooting tables, verbose per-endpoint
|
|
454
|
+
catalogues.
|
|
455
|
+
|
|
456
|
+
**Checklist before reaching for `<details>`:**
|
|
457
|
+
|
|
458
|
+
1. The content must appear *in this section* (cannot be moved to a satellite file without
|
|
459
|
+
losing context).
|
|
460
|
+
2. It spans enough lines that a reader scrolling past this section loses sight of the next
|
|
461
|
+
section on a standard screen.
|
|
462
|
+
3. A casual first-time reader does not need every line immediately — the summary label alone
|
|
463
|
+
tells them what's hidden.
|
|
464
|
+
|
|
465
|
+
If any of the three fails, either inline it normally or move it to `readme-docs/`.
|
|
466
|
+
|
|
467
|
+
```markdown
|
|
468
|
+
## <Section heading stays outside>
|
|
469
|
+
|
|
470
|
+
<Optional 1–3 sentence intro stays outside too — gives readers enough to decide whether to expand.>
|
|
471
|
+
|
|
472
|
+
<details><summary>Expand to view <what is inside>: <e.g. "detailed list of tools" /
|
|
473
|
+
"full request/response schema" / "per-endpoint example matrix"></summary><br>
|
|
474
|
+
|
|
475
|
+
|
|
476
|
+
<bulky content: tables, code blocks, nested subsections — anything markdown supports>
|
|
477
|
+
|
|
478
|
+
</details>
|
|
479
|
+
```
|
|
480
|
+
|
|
481
|
+
**Do NOT wrap in `<details>`:**
|
|
482
|
+
|
|
483
|
+
- Quick Start commands
|
|
484
|
+
- Key Features bullet list
|
|
485
|
+
- Configuration Basics table (short by design)
|
|
486
|
+
- MCP Client Integration JSON snippets
|
|
487
|
+
- Transports listing
|
|
488
|
+
- Anything under ~20 lines
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "fa-mcp-sdk",
|
|
3
3
|
"productName": "FA MCP SDK",
|
|
4
|
-
"version": "0.4.
|
|
4
|
+
"version": "0.4.58",
|
|
5
5
|
"description": "Core infrastructure and templates for building Model Context Protocol (MCP) servers with TypeScript",
|
|
6
6
|
"type": "module",
|
|
7
7
|
"main": "dist/core/index.js",
|