Granoflow
NPM · @GRANOFLOW/MCP-SERVER · SCANNED SEP 24
Connect MCP-capable AI agents to local Granoflow tasks, reviews, cards, imports, and work memory.
Available components
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
- 31 of 96 dependencies flagged as unhealthy. View diagnostics → Partial
Provenance & Transparency45
- Source repository is publicly reachable at the declared URL. View diagnostics → Pass
- Provenance check failed: no build-provenance attestation is published. See how to fix → View diagnostics → Fail
- Clear OSI-approved license (MIT).Pass
- Actively maintained (last published 58 days ago).Pass
- Disclosure check failed: no security disclosure policy was found in the source repository. See how to fix → Fail
Schema Quality & AI Usability73
- AI-judged instruction clarity (good).Pass
- Tool/resource definitions use about 9272 tokens (~71/item across 129 items; 129 tools + 0 resources), lean.Pass
- Usage-examples check failed: none of the tools include examples. See how to fix → Fail
Stability & Change Management80
- Stability observed for 24 of 30 days with no destabilising changes; credit accrues until the full window elapses.Partial
Tool Coverage74
- 100% of tools have a non-trivial description (not blank, and not just the tool's name).Pass
- 22% of tool parameters carry a description.Partial
Tool Safety75
- No prompt-injection markers were found in the server instructions, tool names or descriptions we captured.Pass
- 0 of 11 tool(s) whose name or description implies an irreversible operation declare an MCP destructiveHint annotation; "granoflow_evidence_delete" implies "delete" and declares no destructiveHint at all, which the MCP spec reads as destructive by default. See how to fix → Fail
- An AI judge read all 129 captured unit(s) of tool text and found none that tries to manipulate the model reading it.Pass
Capabilities100
- Implements a supported MCP spec version (2025-11-25); the latest is 2026-07-28.Pass
How do I install the Granoflow MCP server?
Granoflow runs locally as an npm package, launched with npx -y @granoflow/mcp-server. Ready-made configuration for Claude, Cursor, VS Code, Codex and 5 more is on this page, copied from each client's own documentation.
npm · @granoflow/mcp-server
claude mcp add com-granoflow-mcp-server -- npx -y @granoflow/mcp-server
{
"mcpServers": {
"com-granoflow-mcp-server": {
"command": "npx",
"args": [
"-y",
"@granoflow/mcp-server"
]
}
}
} {
"servers": {
"com-granoflow-mcp-server": {
"command": "npx",
"args": [
"-y",
"@granoflow/mcp-server"
]
}
}
} codex mcp add com-granoflow-mcp-server -- npx -y @granoflow/mcp-server
{
"$schema": "https://opencode.ai/config.json",
"mcp": {
"com-granoflow-mcp-server": {
"type": "local",
"command": [
"npx",
"-y",
"@granoflow/mcp-server"
],
"enabled": true
}
}
} openclaw mcp add com-granoflow-mcp-server --command npx --arg -y --arg @granoflow/mcp-server
mcp_servers:
com-granoflow-mcp-server:
command: "npx"
args: ["-y", "@granoflow/mcp-server"] {
"McpServers": {
"com-granoflow-mcp-server": {
"Transport": "stdio",
"Command": "npx",
"Arguments": [
"-y",
"@granoflow/mcp-server"
]
}
}
} assistant mcp add com-granoflow-mcp-server -t stdio -c npx -a -y @granoflow/mcp-server
{
"mcpServers": {
"com-granoflow-mcp-server": {
"command": "npx",
"args": [
"-y",
"@granoflow/mcp-server"
]
}
}
} 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.
- 24 Sept 26 −3
- Stability: pass → 0.80 functional
- 23 Sept 26 0
- Stability: 0.97 → pass security
- 22 Sept 26 +1
No change was recorded against any check on this day. Stability & Change Management went from 93 to 97. That category is still filling its 30-day observation window: 28 days of observed history at the previous scan, 29 at this one. The score rises as the window fills, whether or not the server changes.
- 20 Sept 26 +1
No change was recorded against any check on this day. Stability & Change Management went from 87 to 90. That category is still filling its 30-day observation window: 26 days of observed history at the previous scan, 27 at this one. The score rises as the window fills, whether or not the server changes.
- 18 Sept 26 +1
No change was recorded against any check on this day. Stability & Change Management went from 80 to 83. That category is still filling its 30-day observation window: 24 days of observed history at the previous scan, 25 at this one. The score rises as the window fills, whether or not the server changes.
- 17 Sept 26 −3
- Stability: pass → 0.80 functional
- 16 Sept 26 0
- Stability: 0.97 → pass security
- 15 Sept 26 +1
No change was recorded against any check on this day. Stability & Change Management went from 93 to 97. That category is still filling its 30-day observation window: 28 days of observed history at the previous scan, 29 at this one. The score rises as the window fills, whether or not the server changes.
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 24 Sept 2026 · Analysed npm/@granoflow/mcp-server@0.1.16
Provenance No attestation
The registry publishes no build provenance for this version, so there is nothing to verify.
| Result | No attestation |
|---|---|
| Ecosystem | npm |
Background: How many MCP packages publish verified provenance →
Dependencies 96 packages
| Packages resolved | 96 |
|---|---|
| Stale | 31 |
| 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 →
granoflow_agent_preferences_get ~74
Resolve compact Agent preferences from project YAML, MCP-local defaults, and newcomer-safe defaults. Project values win field by field. This read never grants push, publish, deploy, deletion, login, secret access, or destructive Git actions.
| Name | Type | Req | Description |
|---|---|---|---|
| dryRun | boolean | – | – |
| projectId | string | – | – |
No output schema declared.
No examples provided.
granoflow_agent_preferences_write_defaults ~59
Preview or write non-secret MCP-local Agent defaults. Per-project overrides remain in project_rules.yaml. Defaults to dry-run and returns a redacted readback.
| Name | Type | Req | Description |
|---|---|---|---|
| dryRun | boolean | – | – |
| preferences | object | yes | – |
No output schema declared.
No examples provided.
granoflow_agent_workflow_skill ~216
Read the bundled Granoflow Agent Workflow skill. Call this when a user works with Granoflow tasks, says 'Analyze the first task', says 'Start the first task', says 'Create a task from this requirement', says 'Process today's tasks', asks in their own language to analyze/start one selected task, create a task from a discussed requirement, or process tasks for a date/range/all-task scope, needs approval or missing information recorded in a task, finishes tasks, asks for weekly or monthly reviews, task reviews, review cards, historical context, decisions, lessons, similar past work, or long-term work memory, or politely/strongly signals that Granoflow/MCP/generated agent output is wrong or misaligned. Use granoflow_daily_review_skill for an explicitly requested daily review or mood/efficiency note, and granoflow_first_run_import_skill for first-run import from Cursor, Codex, Hermes, or other agents. Do not call it for unrelated venting or unrelated disagreement.
Input schema present but exposes no named parameters.
No output schema declared.
No examples provided.
granoflow_ai_agent_tools ~44
List Granoflow AI-agent tool contracts from the running app. Use with granoflow_agent_workflow_skill for task, review, and memory-style questions.
Input schema present but exposes no named parameters.
No output schema declared.
No examples provided.
granoflow_api_request ~74
Run an allowed Granoflow Local HTTP API request. Prefer dedicated tools when available.
| Name | Type | Req | Description |
|---|---|---|---|
| dryRun | boolean | – | When true, previews write requests. |
| input | object | – | JSON object sent to the Granoflow Local HTTP API. |
| method | string | – | – |
| path | string | yes | – |
No output schema declared.
No examples provided.
granoflow_bundled_skill_reference ~86
Read one public Markdown reference from a bundled Granoflow skill. Discover valid referenceId values from that skill's references manifest first. This read-only package operation does not call the Granoflow Local HTTP API or require an API token.
| Name | Type | Req | Description |
|---|---|---|---|
| referenceId | string | yes | Reference identifier from the selected skill's references manifest. |
| skillId | string | yes | – |
No output schema declared.
No examples provided.
granoflow_capabilities ~22
List capabilities exposed by the running Granoflow app.
Input schema present but exposes no named parameters.
No output schema declared.
No examples provided.
granoflow_context_pack ~109
Read a structured Granoflow work-memory context pack for the current agent task. Returns typed facts and match signals, not planning hints or recommendations.
| Name | Type | Req | Description |
|---|---|---|---|
| client | string | – | – |
| dryRun | boolean | – | When true, previews the request without calling the app. |
| limit | integer | – | – |
| projectId | string | – | – |
| query | string | – | – |
| repo | string | – | – |
| scope | string | – | – |
| taskId | string | – | – |
No output schema declared.
No examples provided.
granoflow_context_steward_status ~49
Read Granoflow project and milestone context-steward state, including active milestones and the archived-milestone final-snapshot policy.
| Name | Type | Req | Description |
|---|---|---|---|
| projectId | string | – | – |
No output schema declared.
No examples provided.
granoflow_daily_review_skill ~73
Read the bundled Granoflow Daily Review skill. Call this when a user explicitly asks to review, summarize, or journal one day, including mood or efficiency notes. It requires display of evidence and a draft, conversation and explicit confirmation, then write and App/API readback of only approved daily-review fields.
Input schema present but exposes no named parameters.
No output schema declared.
No examples provided.
granoflow_delegated_authorization_skill ~67
Read the bundled Granoflow Delegated Authorization skill. Use it when a user wants bounded unattended continuation or when a Task Work phase gate may consume a confirmed, current authorization envelope. The skill and its validator never infer consent from tags, urgency, or absence.
Input schema present but exposes no named parameters.
No output schema declared.
No examples provided.
granoflow_evidence_authoring_apply ~93
Apply only user-approved Evidence operations from a current preview and return App readback.
| Name | Type | Req | Description |
|---|---|---|---|
| approvedOperationIds | array | yes | – |
| expectedTaskReviewHash | string | yes | – |
| expectedTaskReviewRevision | integer | yes | – |
| idempotencyKey | string | yes | – |
| previewHash | string | yes | – |
| previewToken | string | yes | – |
| taskId | string | yes | – |
No output schema declared.
No examples provided.
granoflow_evidence_authoring_preview ~40
Preview Evidence candidates for a reviewed task with zero writes.
| Name | Type | Req | Description |
|---|---|---|---|
| candidates | array | yes | – |
| taskId | string | yes | – |
No output schema declared.
No examples provided.
granoflow_evidence_delete ~52
Delete existing Evidence after explicit confirmation. This does not run during sync or backup restore.
| Name | Type | Req | Description |
|---|---|---|---|
| confirmed | boolean | yes | – |
| evidenceId | string | yes | – |
| expectedRevision | integer | yes | – |
No output schema declared.
No examples provided.
granoflow_evidence_get ~32
Get one Evidence item with its task ownership and internal link.
| Name | Type | Req | Description |
|---|---|---|---|
| evidenceId | string | yes | – |
No output schema declared.
No examples provided.
granoflow_evidence_list ~34
List Evidence owned by one task, including source status and internal links.
| Name | Type | Req | Description |
|---|---|---|---|
| taskId | string | yes | – |
No output schema declared.
No examples provided.
granoflow_evidence_search ~42
Search the independent Evidence lane. The app reports vector or explicit degraded fallback status.
| Name | Type | Req | Description |
|---|---|---|---|
| limit | integer | – | – |
| query | string | yes | – |
No output schema declared.
No examples provided.
granoflow_evidence_update ~43
Edit existing Evidence with optimistic revision checking.
| Name | Type | Req | Description |
|---|---|---|---|
| evidenceId | string | yes | – |
| expectedRevision | integer | yes | – |
| statement | string | yes | – |
No output schema declared.
No examples provided.
granoflow_experience_authoring_apply ~60
Apply only user-approved Experience operations from a current preview.
| Name | Type | Req | Description |
|---|---|---|---|
| approvedOperationIds | array | yes | – |
| idempotencyKey | string | yes | – |
| previewHash | string | yes | – |
| previewToken | string | yes | – |
No output schema declared.
No examples provided.
granoflow_experience_authoring_preview ~51
Preview Experience distillation for a task or periodic review with zero writes.
| Name | Type | Req | Description |
|---|---|---|---|
| candidates | array | yes | – |
| scopeId | string | yes | – |
| scopeType | string | yes | – |
No output schema declared.
No examples provided.
granoflow_experience_delete ~67
Permanently delete an Experience and all relations after both impact and final confirmation.
| Name | Type | Req | Description |
|---|---|---|---|
| expectedRevision | integer | yes | – |
| experienceId | string | yes | – |
| impactConfirmed | boolean | yes | – |
| permanentConfirmed | boolean | yes | – |
| previewHash | string | yes | – |
No output schema declared.
No examples provided.
granoflow_experience_delete_impact ~35
Preview the full impact of permanently deleting an Experience with zero writes.
| Name | Type | Req | Description |
|---|---|---|---|
| experienceId | string | yes | – |
No output schema declared.
No examples provided.
granoflow_experience_get ~36
Get one Experience with provenance, task usages, Knowledge links, and merge redirect.
| Name | Type | Req | Description |
|---|---|---|---|
| experienceId | string | yes | – |
No output schema declared.
No examples provided.
granoflow_experience_list ~59
List independent Experience records, optionally for a daily, weekly, or monthly review scope.
| Name | Type | Req | Description |
|---|---|---|---|
| limit | integer | – | – |
| offset | integer | – | – |
| periodKind | string | – | – |
| scopeId | string | – | – |
No output schema declared.
No examples provided.
granoflow_experience_merge_apply ~75
Apply an approved Experience merge and return the stable redirect readback.
| Name | Type | Req | Description |
|---|---|---|---|
| canonicalExperienceId | string | yes | – |
| confirmed | boolean | yes | – |
| expectedCanonicalRevision | integer | yes | – |
| expectedMergedRevision | integer | yes | – |
| mergedExperienceId | – | yes | – |
| previewHash | string | yes | – |
No output schema declared.
No examples provided.
granoflow_experience_merge_preview ~41
Preview merging one Experience into a canonical Experience with zero writes.
| Name | Type | Req | Description |
|---|---|---|---|
| canonicalExperienceId | string | yes | – |
| mergedExperienceId | – | yes | – |
No output schema declared.
No examples provided.
granoflow_experience_search ~39
Search the independent Experience lane with explicit vector or degraded fallback status.
| Name | Type | Req | Description |
|---|---|---|---|
| limit | integer | – | – |
| query | string | yes | – |
No output schema declared.
No examples provided.
granoflow_experience_update ~77
Edit all required fields of an independent Experience with optimistic revision checking.
| Name | Type | Req | Description |
|---|---|---|---|
| boundary | string | yes | – |
| conclusion | string | yes | – |
| context | string | yes | – |
| expectedRevision | integer | yes | – |
| experienceId | string | yes | – |
| nextAction | string | yes | – |
| rationale | string | yes | – |
No output schema declared.
No examples provided.
granoflow_experience_usage_link ~59
Link or update a confirmed task usage for an Experience.
| Name | Type | Req | Description |
|---|---|---|---|
| confirmed | boolean | yes | – |
| experienceId | string | yes | – |
| kind | string | yes | – |
| note | string | – | – |
| taskId | – | yes | – |
No output schema declared.
No examples provided.
granoflow_experience_usage_unlink ~47
Unlink an Experience from one task without deleting Experience provenance.
| Name | Type | Req | Description |
|---|---|---|---|
| confirmed | boolean | yes | – |
| experienceId | string | yes | – |
| taskId | – | yes | – |
No output schema declared.
No examples provided.
granoflow_experience_usage_unlink_impact ~46
Preview whether unlinking an Experience from a task would leave it without task relations.
| Name | Type | Req | Description |
|---|---|---|---|
| experienceId | string | yes | – |
| taskId | – | yes | – |
No output schema declared.
No examples provided.
granoflow_first_run_import_skill ~111
Read the bundled Granoflow First-Run Import skill. Call this when a user says 'Initialize Granoflow', optionally asks to import data, or uses an equivalent request in their own language. The workflow checks the connection, offers all unavailable recommended AI capability collections using only their names and plain-language functions, and previews authorized Cursor, Codex, Hermes, or other agent records as projects, monthly milestones, tasks, review-card candidates, and context backfills before any requested import write.
Input schema present but exposes no named parameters.
No output schema declared.
No examples provided.
granoflow_gfmcp_candidates ~39
List pending Granoflow tasks tagged GFMCP. The tag marks eligibility but does not grant authorization for privileged or external actions.
Input schema present but exposes no named parameters.
No output schema declared.
No examples provided.
granoflow_gfmcp_prepare ~49
Create or repair the GFMCP custom tag and its app-localized task description template. Granoflow owns localization and idempotency.
| Name | Type | Req | Description |
|---|---|---|---|
| dryRun | boolean | – | – |
No output schema declared.
No examples provided.
granoflow_gfmcp_runner_skill ~48
Read the bundled GFMCP automatic task runner skill. Use it to install, operate, or diagnose the optional five-minute Python worker for pending tasks tagged GFMCP.
Input schema present but exposes no named parameters.
No output schema declared.
No examples provided.
granoflow_gfmcp_safe_sync ~55
Ask the Granoflow app to perform a safe pre-poll sync only when current authorization permits it. Defaults to dry-run and never guesses membership or key state.
| Name | Type | Req | Description |
|---|---|---|---|
| dryRun | boolean | – | – |
No output schema declared.
No examples provided.
granoflow_git_missing_notice_record ~56
Record that the one-time newcomer Git-unavailable notice was shown. This stores only a boolean marker and never installs Git or changes a repository.
| Name | Type | Req | Description |
|---|---|---|---|
| dryRun | boolean | – | – |
| shown | boolean | – | – |
No output schema declared.
No examples provided.
granoflow_health ~22
Check whether the Granoflow Local HTTP API is reachable.
Input schema present but exposes no named parameters.
No output schema declared.
No examples provided.
granoflow_historical_task_candidates ~102
Read App-owned historical task candidate facts and bounded evidence for one current task. The tool never ranks again or turns relationship facts into recommendations.
| Name | Type | Req | Description |
|---|---|---|---|
| dryRun | boolean | – | When true, previews the request without calling the app. |
| errorText | string | – | – |
| limit | integer | – | – |
| module | string | – | – |
| paths | array | – | – |
| summary | string | – | – |
| taskId | string | yes | – |
No output schema declared.
No examples provided.
granoflow_knowledge_assessment_apply ~63
Apply only approved Knowledge assessment operations; this does not materialize cards.
| Name | Type | Req | Description |
|---|---|---|---|
| approvedOperationIds | array | yes | – |
| idempotencyKey | string | yes | – |
| previewHash | string | yes | – |
| previewToken | string | yes | – |
No output schema declared.
No examples provided.
granoflow_knowledge_assessment_get ~33
Get one Knowledge assessment with typed source snapshots and freshness.
| Name | Type | Req | Description |
|---|---|---|---|
| assessmentId | string | yes | – |
No output schema declared.
No examples provided.
granoflow_knowledge_assessment_list ~22
List Knowledge eligibility assessments without creating cards.
Input schema present but exposes no named parameters.
No output schema declared.
No examples provided.
granoflow_knowledge_assessment_preview ~36
Preview eligibility, disposition, learning cost, and duplicate handling with zero writes.
| Name | Type | Req | Description |
|---|---|---|---|
| candidates | array | yes | – |
No output schema declared.
No examples provided.
granoflow_knowledge_control_apply ~63
Apply approved control evidence. Verified status remains App-owned and requires readback evidence.
| Name | Type | Req | Description |
|---|---|---|---|
| idempotencyKey | string | yes | – |
| operationId | string | yes | – |
| previewHash | string | yes | – |
| previewToken | string | yes | – |
No output schema declared.
No examples provided.
granoflow_knowledge_control_preview ~47
Preview implemented or verified system-control evidence with zero writes.
| Name | Type | Req | Description |
|---|---|---|---|
| evidence | object | yes | – |
| materializationId | string | yes | – |
| status | string | yes | – |
No output schema declared.
No examples provided.
granoflow_knowledge_materialization_apply ~63
Apply approved Knowledge materializations atomically and return Note/Card readback.
| Name | Type | Req | Description |
|---|---|---|---|
| approvedOperationIds | array | yes | – |
| idempotencyKey | string | yes | – |
| previewHash | string | yes | – |
| previewToken | string | yes | – |
No output schema declared.
No examples provided.
granoflow_knowledge_materialization_get ~40
Get one Knowledge materialization with Note, Cards, source health, and control evidence.
| Name | Type | Req | Description |
|---|---|---|---|
| materializationId | string | yes | – |
No output schema declared.
No examples provided.
granoflow_knowledge_materialization_list ~27
List approved Knowledge materializations backed by existing Review Notes and Cards.
Input schema present but exposes no named parameters.
No output schema declared.
No examples provided.
granoflow_knowledge_materialization_preview ~37
Preview atomic Knowledge Note/Card creation or existing-Knowledge reuse with zero writes.
| Name | Type | Req | Description |
|---|---|---|---|
| candidates | array | yes | – |
No output schema declared.
No examples provided.
granoflow_logical_attachment_read ~71
Read bounded Markdown or YAML content and App-owned SHA-256 for one current logical attachment. Acceptance HTML is previewed by the App and uses replace-response hash readback.
| Name | Type | Req | Description |
|---|---|---|---|
| attachmentId | string | yes | – |
| entityId | string | yes | – |
| entityType | string | yes | – |
No output schema declared.
No examples provided.
What is the Granoflow MCP server?
Granoflow is an MCP server listed in the public MCP registry as com.granoflow/mcp-server. Connect MCP-capable AI agents to local Granoflow tasks, reviews, cards, imports, and work memory. This page covers its npm package (@granoflow/mcp-server).
Is the Granoflow MCP server safe to use?
Granoflow scores 77 out of 100 on VerifyMCP. We found no known CVEs affecting it as of 24 September 2026. It declares no install or post-install scripts. 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 Granoflow MCP server expose?
Granoflow exposes 129 tools: granoflow_agent_workflow_skill, granoflow_daily_review_skill, granoflow_first_run_import_skill, granoflow_review_card_draft_skill, granoflow_gfmcp_runner_skill, and 124 more. Their descriptions and schemas cost roughly 9,272 tokens of context every time the server is loaded.
Is the Granoflow MCP server still maintained?
Granoflow is still listed as active in the MCP registry. We last reached this channel on 24 September 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 Granoflow MCP server under?
Granoflow declares the MIT licence, which is OSI-approved. That covers the source only, and says nothing about the cost of any service it calls.