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.
@@ -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. **Overview** — 24 sentences. Answers: what is this, for whom, core value
144
- 4. **Tools** grouped table, `## Tools (<count>)` with per-domain `###` subsections
145
- 5. **Quick Start** — install, run, minimal verification (3 short steps)
146
- 6. **MCP Client Integration** — Claude Code (HTTP), Claude Desktop (STDIO + `mcp-remote` /
163
+ 3. **Quick Links** — 814 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
- 7. **Key Features** — 5–8 bullets. Include enabled SDK subsystems and project-specific capabilities
150
- 8. **Transports** — short bulleted list with endpoints (`/mcp`, `/api/*`, `/docs`, `/health`,
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
- 9. **Configuration Basics** — 5–10 most important keys in a compact table; link to
153
- `readme-docs/configuration.md` when the full reference is long
154
- 10. **Build & Run / Deployment** — minimal commands, environment variables
155
- 11. **Authentication** — 2–4 sentences + link to `readme-docs/authentication.md` (satellite is mandatory
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
- 12. **Feature sections (dynamic)** — one short subsection per enabled optional subsystem and per
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
- 13. **Skills** — short paragraph linking to `readme-docs/SKILLS.md` (kept under `readme-docs/`
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
- 14. **Stack** — 4–7 bullets: framework (`fa-mcp-sdk`), transport, language, key libs
173
- 15. **License**
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
- - [ ] Every section in the main README is ~40 lines, or split into a satellite
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
- ```markdown
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
- Notes:
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
@@ -50,7 +50,7 @@
50
50
  "dependencies": {
51
51
  "@modelcontextprotocol/sdk": "^1.29.0",
52
52
  "dotenv": "^17.4.1",
53
- "fa-mcp-sdk": "^0.4.57"
53
+ "fa-mcp-sdk": "^0.4.58"
54
54
  },
55
55
  "devDependencies": {
56
56
  "@types/express": "^5.0.6",
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.57",
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",