io.github.ecestnrkl/figjam-mcp
NPM · FIGJAM-CONTEXT-MCP
Query FigJam board context, source-cited answers and snapshot changes through five local MCP tools.
Available components
Last scanned (21 hours ago)
Scores higher than 90% of npm servers
Category Productivity and Notes
How this component scores in each security and reliability category. Every signal is checked automatically from public evidence about the published package, including repeated runs of it in an isolated sandbox, and we only credit what we can confirm. How we score → Why this is hard to score →
Supply Chain Security98
- No malware found by supply-chain analysis.Pass
- No known CVEs affecting this package version or its production dependencies.Pass
- No install/post-install scripts declared.Pass
- 2 of 7 dependencies flagged as unhealthy. View diagnostics → Partial
Provenance & Transparency100
- Source repository is publicly reachable at the declared URL. View diagnostics → Pass
- Cryptographically verified build provenance (signed, bound to ecestnrkl/figjam-mcp). View diagnostics → Pass
- Clear OSI-approved license (MIT).Pass
- Actively maintained (last published 9 days ago).Pass
- Publishes a security disclosure policy (SECURITY.md).Pass
Schema Quality & AI Usability62
- AI-judged instruction clarity (excellent).Pass
- Context-footprint check failed: tool/resource definitions use about 1376 tokens (~275/item across 5 items; 5 tools + 0 resources), over budget; trim descriptions and params. See how to fix → Fail
- Usage-examples check failed: none of the tools include examples. See how to fix → Fail
Stability & Change Management53
- Stability observed for 16 of 30 days with no destabilising changes; credit accrues until the full window elapses.Partial
Tool Coverage97
- 100% of tools have a non-trivial description (not blank, and not just the tool's name).Pass
- 90% of tool parameters carry a description.Partial
- Structured output schemas are declared (100% of tools); any adoption earns full credit.Pass
Tool Safety100
- No prompt-injection markers were found in the server instructions, tool names or descriptions we captured.Pass
- We read all 5 captured tool definition(s), and no name or description among them implies an irreversible operation.Pass
- An AI judge read all 5 captured unit(s) of tool text and found none that tries to manipulate the model reading it.Pass
Capabilities100
- Implements a current MCP spec version (2026-07-28).Pass
Every change we have recorded for this component, newest first. Security-relevant changes are always shown. ▲ marks a change for the better, ▼ a change for the worse; unmarked changes are neutral.
- 4 Nov 26 +1
No change was recorded against any check on this day. Stability & Change Management went from 50 to 53. That category is still filling its 30-day observation window: 15 days of observed history at the previous scan, 16 at this one. The score rises as the window fills, whether or not the server changes.
- 2 Nov 26 +1
No change was recorded against any check on this day. Stability & Change Management went from 43 to 47. That category is still filling its 30-day observation window: 13 days of observed history at the previous scan, 14 at this one. The score rises as the window fills, whether or not the server changes.
- 30 Oct 26 +1
No change was recorded against any check on this day. Stability & Change Management went from 33 to 37. That category is still filling its 30-day observation window: 10 days of observed history at the previous scan, 11 at this one. The score rises as the window fills, whether or not the server changes.
- 28 Oct 26 +1
No change was recorded against any check on this day. Stability & Change Management went from 27 to 30. That category is still filling its 30-day observation window: 8 days of observed history at the previous scan, 9 at this one. The score rises as the window fills, whether or not the server changes.
- 26 Oct 26 +1
- Stability: 0.20 → unverified ▼ security
- Tool safety: pass → unverified ▼ security
- Schema quality: 243 → 275 ▼ functional
- Capabilities: pass → unverified ▼ functional
- Tool coverage: 100 → unverified ▼ functional
- First check of Schema quality: unverified functional
- Package version: 0.10.3 → 0.11.0 functional
- 23 Oct 26 +11
- Known CVEs: unverified → pass ▲ security
- Dependency health: unverified → 0.85 ▲ functional
- 22 Oct 26 +16
- Stability: 0.07 → unverified ▼ security
- Tool safety: pass → unverified ▼ security
- Malware scan: unverified → pass ▲ security
- Known CVEs: unverified → pass ▲ security
- Capabilities: pass → unverified ▼ functional
- Tool coverage: 100 → unverified ▼ functional
- Dependency health: unverified → 0.85 ▲ functional
- First check of Schema quality: unverified functional
- Package version: 0.10.2 → 0.10.3 functional
- 21 Oct 26 0
- Malware scan: unverified → pass ▲ security
- Known CVEs: unverified → pass ▲ security
- Dependency health: unverified → 0.85 ▲ functional
- Package version: 0.9.1 → 0.10.2 functional
- Package version: 0.9.1 → 0.10.1 functional
- Package version: 0.9.1 → 0.10.0 functional
Diagnostic detail from the automated scan of this channel: what the scanner observed at each step, so you can see exactly where a check passed or failed. It is informational only and never changes the trust score.
Captured 4 Nov 2026 · Analysed npm/figjam-context-mcp@0.11.0
Provenance Verified
A signed build attestation was found and verified, binding this exact artifact to the source repository it claims to come from.
| Result | Verified |
|---|---|
| Ecosystem | npm |
| Reason | Verified |
| Discovered via | Registry attestation endpoint |
| Source repo | ecestnrkl/figjam-mcp |
| Certificate issuer | https://token.actions.githubusercontent.com |
| Certificate SAN | https://github.com/ecestnrkl/figjam-mcp/.github/workflows/release.yml@refs/tags/v0.11.0 |
| Rekor log index | 3476058330 |
| Predicate type | SLSA build provenance https://slsa.dev/provenance/v1 |
| Subject digest | sha512:d6ba830d4264e17549cc1623cec666c7a0eb72c53e28a8b42c2aa05ebb20e227fef80c9d8b2cb4d777cb8f81a457836d15889d000aa9309d48f72e9c4 |
Background: How many MCP packages publish verified provenance →
Dependencies 7 packages
| Packages resolved | 7 |
|---|---|
| Stale | 2 |
| Tree resolution | Complete |
Background: SBOMs and build attestations, explained →
The tools this component advertises to a client, with an estimated token cost for each. Expand a tool to see its parameters and schema. The per-tool counts are indicative and are not scored directly; the schema's total context footprint is one signal in Schema Quality & AI Usability. A tool's description is untrusted text the model reads on every call, which is what makes this list a security surface and not just an inventory: how tool poisoning works →
answer_from_board Answer From Board ~127
Answer one specific question, such as a number, a status or a decision, from the most relevant excerpts of an ingested board, with validated source citations or an insufficient-evidence result. It reads only a handful of excerpts: not for summaries, lists, risks or next steps across several sections; read those with get_board_context. Sends the question and the selected excerpts to the configured LLM provider; calls may incur charges.
| Name | Type | Req | Description |
|---|---|---|---|
| boardId | string | yes | The Figma file key returned by ingest_board |
| question | string | yes | – |
| snapshotId | string | – | – |
| Name | Type | Req | Description |
|---|---|---|---|
| answer | string | yes | – |
| citations | array | yes | – |
| citedClusters | array | yes | – |
| snapshotId | string | yes | – |
No examples provided.
diagnose_llm_config Diagnose LLM Config ~58
Test the configured text and vision models with three small synthetic JSON challenges. Sends synthetic text and an image to the configured provider, may incur charges, and reports semantic/schema failures. Does not read board contents. Use after changing model/provider settings.
Input schema present but exposes no named parameters.
| Name | Type | Req | Description |
|---|---|---|---|
| checks | array | yes | – |
| fastTextModels | array | yes | – |
| ok | boolean | yes | – |
| preset | string | yes | – |
| providerRequireParameters | boolean | yes | – |
| summary | string | yes | – |
| textModels | array | yes | – |
| visionModels | array | yes | – |
No examples provided.
diff_board Diff Board Snapshots ~150
Compare retained local snapshots of the same board, reporting cluster, node and connector changes. Names each changed node with its section and its old and new text, and each changed table cell with its row and column. Needs two ingests; when the board did not change in between, it reports no changes since the first. compareTo=1 selects the previous snapshot, 2 selects two states back. No network or LLM calls; ingest_board must capture the current Figma state first.
| Name | Type | Req | Description |
|---|---|---|---|
| boardId | string | yes | The Figma file key, as returned by ingest_board |
| compareTo | integer | – | How many snapshots back to use as the baseline (1 = the ingest before the latest) |
| Name | Type | Req | Description |
|---|---|---|---|
| addedConnections | array | yes | – |
| baselineCreatedAt | string | yes | ISO timestamp of the baseline ingest |
| baselineSnapshotId | string | – | – |
| boardId | string | yes | – |
| currentCreatedAt | string | yes | ISO timestamp of the latest ingest |
| currentSnapshotId | string | – | – |
| modifiedClusters | array | yes | – |
| newClusters | array | yes | – |
| nodeChanges | array | – | Edited, added, then removed nodes in reading order; read whole texts with get_board_context and nodeIds |
| nodeChangesOmitted | integer | – | Changed nodes beyond the first 100 |
| removedClusters | array | yes | – |
| removedConnections | array | yes | – |
| stats | object | yes | – |
| summaryText | string | yes | Paste-ready human/LLM-readable change report |
| tableCellChanges | array | – | – |
No examples provided.
get_board_context Get Board Context ~565
Read source-cited context from an ingested board snapshot. Start overviews, summaries and documentation with a call without topic, nodeIds, limit and maxChars: its first page names the largest sections and lists sections with IDs. Then pass section, page, frame or group IDs as nodeIds; several IDs share each page in request order. Default detail: "auto" switches reads of multiple distinct IDs or one page, section, frame or group to a compact overview only when the first full page would leave unread excerpts. Overview lines contain node IDs and deterministically shortened text (50–120 characters); structuredContent puts the excerpts once in overview.text, with empty evidence and clusters. limit applies only to the full view and is ignored in an overview, even when explicit. Read the complete source and Figma link with the same boardId and snapshotId, nodeIds: ["<ID>"] and detail: "full"; table IDs read every row. Without overview, excerpts are in evidence. Read outsideSections: true, search with topic, or continue with cursor. Synthesize the answer yourself. No network or LLM calls; use ingest_board to refresh Figma content.
| Name | Type | Req | Description |
|---|---|---|---|
| boardId | string | yes | The Figma file key returned by ingest_board |
| cursor | string | – | nextCursor of the previous page, unchanged; send it with the same topic, nodeIds, outsideSections, detail, limit and maxChars |
| detail | string | – | auto uses a compact, source-marked overview when a requested container or several nodeIds need multiple full pages; full returns linked evidence objects. Overview lines may be shortened; use full to… |
| limit | integer | – | Maximum evidence excerpts per full page (default 20, at most 100); ignored in an automatic overview, even when explicit. Use detail: full for an excerpt limit |
| maxChars | integer | – | Character budget for each representation: the readable text content and the JSON of structuredContent (default 12000, minimum 2000) |
| nodeIds | array | – | Read exact source nodes, all rows of a table or the row of a table cell, or every excerpt inside a page, section, frame or group by its ID (nested sections included, in reading order); several IDs in… |
| outsideSections | boolean | – | Read every excerpt that lies in no section, cluster by cluster in reading order, tables row by row; on a board without sections, all excerpts. Cannot be combined with topic or nodeIds |
| snapshotId | string | – | Read a specific retained snapshot instead of the latest board |
| topic | string | – | Optional topic to focus the context on |
| Name | Type | Req | Description |
|---|---|---|---|
| clusters | array | yes | – |
| connections | array | yes | Arrows with at least one end, or a section, frame or group around one, among this page's excerpts; never arrows to a page. The label is the text on the arrow |
| contextText | string | yes | Orientation and reading instructions. Excerpts are in overview.text when overview is present (evidence and clusters are then empty), otherwise in evidence; text content carries the same readable exce… |
| evidence | array | yes | Full linked excerpts; empty in overview mode, where excerpts are in overview.text instead |
| nextCursor | string | – | – |
| overview | object | – | Present only for automatic compact overview pages; evidence and clusters are empty, not a claim of no matches. Read a line's full text and Figma link with the same boardId and snapshotId, its nodeId,… |
| relations | array | – | Cluster-to-cluster relations derived from connector arrows |
| snapshotId | string | yes | – |
| totalMatched | integer | yes | – |
| truncated | boolean | yes | – |
| truncation | object | yes | Explicit omissions from structured results and the readable text |
| unknownNodeIds | array | – | Requested nodeIds that are not in this snapshot; the others are read |
No examples provided.
ingest_board Ingest FigJam Board ~476
Read a FigJam/Figma URL with the configured Figma token and persist a local snapshot for get_board_context, answer_from_board and diff_board; the summary names the largest sections to read next and how many excerpts lie outside sections. Leaves the Figma file unchanged. Every call downloads the board from Figma (one Tier 1 request); get_board_context and answer_from_board read the saved snapshot without a new request. Balanced/quality modes may send board text and images to the configured LLM provider and incur charges; max_speed skips vision. Re-ingest to refresh stale content and continue pending image interpretation; focusNodeIds with section IDs from the summary or the first page of get_board_context interprets their images first. Local history is bounded. Supports framework phases or customPhases.
| Name | Type | Req | Description |
|---|---|---|---|
| customPhases | array | – | Free-form phase names to map clusters onto (e.g. ["Ideen", "Feedback", "Offene Fragen"]); overrides docStructureHint |
| docStructureHint | string | – | Built-in framework used to map clusters to phases |
| figmaAccessToken | string | – | Figma personal access token; falls back to FIGMA_ACCESS_TOKEN env var if omitted |
| figmaFileUrl | string | yes | URL of the FigJam/Figma file to ingest |
| focusNodeIds | array | – | IDs of pages, sections, frames, groups or single nodes whose image clusters are interpreted first, in list order; the rest of the board follows in the usual order. Section IDs come from the ingest_bo… |
| forceFullIngest | boolean | – | Build the snapshot from the downloaded board again instead of the cached result for unchanged content, e.g. after turning credential redaction off. Image interpretations of unchanged clusters are kep… |
| ingestMode | string | – | How aggressively to use vision LLM calls during ingest |
| Name | Type | Req | Description |
|---|---|---|---|
| boardId | string | yes | – |
| clusterCount | integer | yes | – |
| figmaVersion | string | – | – |
| freshnessCheckedAt | string | – | – |
| ingestMode | string | – | – |
| persistenceWarning | string | – | – |
| qualityReport | object | – | – |
| relationCount | integer | – | Directed cluster-to-cluster relations derived from connector arrows |
| snapshotId | string | – | – |
| summary | string | yes | – |
No examples provided.
How do I install the io.github.ecestnrkl/figjam-mcp server?
io.github.ecestnrkl/figjam-mcp runs locally as an npm package, launched with npx -y figjam-context-mcp. Ready-made configuration for Claude, Cursor, VS Code, Codex and 5 more is on this page, copied from each client's own documentation.
npm · figjam-context-mcp
claude mcp add ecestnrkl-figjam-mcp -- npx -y figjam-context-mcp
What is the io.github.ecestnrkl/figjam-mcp server?
io.github.ecestnrkl/figjam-mcp is listed in the public MCP registry as io.github.ecestnrkl/figjam-mcp. Query FigJam board context, source-cited answers and snapshot changes through five local MCP tools. This page covers its npm package (figjam-context-mcp).
Is the io.github.ecestnrkl/figjam-mcp server safe to use?
io.github.ecestnrkl/figjam-mcp scores 86 out of 100 on VerifyMCP. We found no known CVEs affecting it as of 4 November 2026. It declares no install or post-install scripts. Its build provenance is signed and verified. That is a record of what we were able to check automatically, not an endorsement. The category breakdown on this page shows every signal behind the number, including the ones we could not confirm.
What tools does the io.github.ecestnrkl/figjam-mcp server expose?
io.github.ecestnrkl/figjam-mcp exposes 5 tools: ingest_board, get_board_context, answer_from_board, diff_board, diagnose_llm_config. Their descriptions and schemas cost roughly 1,376 tokens of context every time the server is loaded.
Is the io.github.ecestnrkl/figjam-mcp server still maintained?
io.github.ecestnrkl/figjam-mcp is still listed as active in the MCP registry. We last reached this channel on 4 November 2026. Those dates come from our own scans of the registry and the channel itself, not from anything the publisher announced.
What licence is the io.github.ecestnrkl/figjam-mcp server under?
io.github.ecestnrkl/figjam-mcp declares the MIT licence, which is OSI-approved. That covers the source only, and says nothing about the cost of any service it calls.