FlowMCP
Server Quality Checklist
Latest release: v1.0.0
- Disambiguation4/5
Each tool has a distinct primary purpose: listing spaces, storing/searching/deleting memories, sharing memories, and managing projects. The overlap between flowmcp_store and flowmcp_project is mitigated by explicit guidance to prefer project for structured context. flowmcp_recall and flowmcp_load are clearly separated by memory vs. project.
Naming Consistency3/5All tools share the flowmcp_ prefix, but naming conventions vary: list_spaces follows verb_noun, while store, recall, forget, push, project, and load are bare verbs or nouns. 'project' is a noun used as a tool name, and 'load' is generic, making the pattern somewhat inconsistent.
Tool Count4/5Seven tools is a reasonable count for a memory management server. However, flowmcp_project bundles five distinct actions (snapshot, update_section, list, save_skill, load_skill), effectively expanding the surface area. Still, the overall count is well within the ideal range.
Completeness4/5The memory lifecycle (create, read, delete, share) is covered, with update handled via store-with-recall. Project management covers snapshot/update/list/skills but lacks a delete project/section action. There is also no direct 'list all memories' tool, only search via recall. Minor gaps but core workflows are functional.
Average 4.5/5 across 7 of 7 tools scored.
See the Tool Scores section below for per-tool breakdowns.
- No community issues in the last 6 months
- 0 commits in the last 12 weeks
- No stable releases found
- No critical vulnerability alerts
- No high-severity vulnerability alerts
- No code scanning findings
- CI is failing
Add a LICENSE file by following GitHub's guide. Once GitHub recognizes the license, the system will automatically detect it within a few hours.
If the license does not appear after some time, you can manually trigger a new scan using the MCP server admin interface.
MCP servers without a LICENSE cannot be installed.
This repository includes a README.md file.
No tool usage detected in the last 30 days. Usage tracking helps demonstrate server value.
Tip: use the "Try in Browser" feature on the server page to seed initial usage.
Add a glama.json file to provide metadata about your server.
If you are the author, simply .
If the server belongs to an organization, first add
glama.jsonto the root of your repository:{ "$schema": "https://glama.ai/mcp/schemas/server.json", "maintainers": [ "your-github-username" ] }Then . Browse examples.
Add related servers to improve discoverability.
How to sync the server with GitHub?
Servers are automatically synced at least once per day, but you can also sync manually at any time to instantly update the server profile.
To manually sync the server, click the "Sync Server" button in the MCP server admin interface.
How is the quality score calculated?
The overall quality score combines two components: Tool Definition Quality (70%) and Server Coherence (30%).
Tool Definition Quality measures how well each tool describes itself to AI agents. Every tool is scored 1–5 across six dimensions: Purpose Clarity (25%), Usage Guidelines (20%), Behavioral Transparency (20%), Parameter Semantics (15%), Conciseness & Structure (10%), and Contextual Completeness (10%). The server-level definition quality score is calculated as 60% mean TDQS + 40% minimum TDQS, so a single poorly described tool pulls the score down.
Server Coherence evaluates how well the tools work together as a set, scoring four dimensions equally: Disambiguation (can agents tell tools apart?), Naming Consistency, Tool Count Appropriateness, and Completeness (are there gaps in the tool surface?).
Tiers are derived from the overall score: A (≥3.5), B (≥3.0), C (≥2.0), D (≥1.0), F (<1.0). B and above is considered passing.
Tool Scores
- Behavior4/5
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare destructiveHint=true, but the description adds the explicit irreversible nature ('This cannot be undone') and specifies the exact effect ('Permanently delete a memory'). It also discloses the return value ('Confirmation of deletion'), which is useful since there is no output schema. The long preamble about FlowMCP's general purpose is not tool-specific, but the core behavioral facts are well covered.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Conciseness3/5Is the description appropriately sized, front-loaded, and free of redundancy?
The core delete instruction is concise, but the description includes a two-sentence preamble about FlowMCP's broader capabilities that is not specific to this tool. The Args/Returns structure is clear and front-loaded with the most critical warning, yet the preamble feels extraneous for a simple delete operation. The description earns a middle score for being organized but not tightly focused.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Completeness5/5Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a single-parameter destructive tool with strong annotations and no output schema, this description is complete. It covers the purpose, irreversibility, usage conditions, parameter source, and return value. The context signals confirm the schema is fully documented, so the description fills the remaining gaps effectively.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Parameters3/5Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% for the single parameter, so the schema already documents the memory_id field. The description repeats the instruction to get the ID from flowmcp_recall results, which matches the schema description. Since the description adds no new semantic details beyond the schema, a baseline score of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Purpose5/5Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states 'Permanently delete a memory' with a specific verb and resource. It also explicitly notes irreversibility ('This cannot be undone'), which differentiates it from sibling tools that handle storing, recalling, or pushing memories. No ambiguity about the tool's function.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Usage Guidelines5/5Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides explicit usage boundaries: 'Only use when the user explicitly asks to remove a memory, or when a memory is clearly outdated and no longer relevant.' It also indirectly references the retrieval workflow by instructing to get the memory_id from flowmcp_recall results, which is the appropriate companion tool. This gives clear when-to-use guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
- Behavior5/5
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Beyond the annotations (readOnly=false, destructive=false), the description explains copy semantics: 'This creates a COPY — the original personal memory stays in your private space unchanged' and that only pushed content becomes visible to group members. It also discloses the return value with a new ID.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Conciseness4/5Is the description appropriately sized, front-loaded, and free of redundancy?
The description is well-structured with intro, use case, args, and returns. However, the opening 'IMPORTANT' paragraph is generic ecosystem guidance that could be trimmed for conciseness.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Completeness5/5Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 2-param tool with no output schema, the description fully covers purpose, use cases, parameter discovery, copy semantics, and return value. The schema adds membership requirements. Everything needed is present.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Parameters3/5Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema already covers 100% of parameters with rich descriptions. The description's Args section largely duplicates the schema text and adds no new semantic meaning beyond what the schema provides, so the baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Purpose5/5Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states 'Copy a personal memory into a group (team) space' with a specific verb and resource. It distinguishes this sharing/copying action from sibling tools like flowmcp_list_spaces, flowmcp_store, flowmcp_recall, and flowmcp_forget.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Usage Guidelines4/5Does the description explain when to use this tool, when not to, or what alternatives exist?
Provides explicit usage guidance: 'Use this when a user wants to share project context, architecture decisions, or technical knowledge with their team.' It directs users to flowmcp_list_spaces for finding target IDs, but does not explicitly contrast with alternatives like store or forget.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
- Behavior4/5
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and destructiveHint=false, so the safety profile is known. The description adds useful behavioral context beyond that: it explains that loading the full project returns a table of contents plus all section content, while loading a specific section returns just that section. It also mentions 'Case-insensitive search' for project_name, which is a subtle behavioral detail not in the annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Conciseness4/5Is the description appropriately sized, front-loaded, and free of redundancy?
The description is well-structured with bold text and bullet points, making it easy to scan. It is slightly redundant—the 'Load project context from FlowMCP' sentence appears both in the warning and later in the body—but the overall length is justified by the useful usage guidance. Every major point earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Completeness4/5Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema, the description does a good job explaining what the tool returns: 'table of contents + all section content' for full loads, or 'just that section' for partial loads. It also covers the prerequisite of needing to know section names and points to a discovery method. It could mention potential errors (e.g., project not found), but for a read-only tool, the provided information is largely complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Parameters4/5Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% with clear parameter descriptions, so the baseline is 3. The description adds significant value by explaining the conditional relationship between parameters: 'provide just project_name' for full load, or 'provide project_name + section_type' for a specific section. It also explains the trade-off ('token-efficient') and how to discover valid section types, which goes beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Purpose5/5Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose: 'Load project context from FlowMCP.' It specifies the verb 'load' and the resource 'project context,' and it distinguishes between loading the full project or a specific section. This differentiates it from sibling tools like flowmcp_list_spaces and flowmcp_project, which are explicitly mentioned as alternatives.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Usage Guidelines5/5Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides explicit guidance on when to use the tool: 'Do NOT answer broad architecture questions... Load its context first.' It also gives concrete scenarios for loading everything ('full project onboarding') versus a single section ('when the user asks about a specific aspect'), and even suggests an alternative tool ('use flowmcp_project with action='list'') for listing projects. This is clear, actionable guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
- Behavior4/5
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, destructiveHint=false, idempotentHint=true. The description adds the return shape (names, types, IDs) and the scope (personal vs group), which is useful context beyond the annotations. No contradictions.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Conciseness4/5Is the description appropriately sized, front-loaded, and free of redundancy?
The description is focused but includes a somewhat markety 'MANDATORY' warning and a paragraph about FlowMCP's memory advantages. Still, it's relatively short and front-loaded with the imperative instruction.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Completeness5/5Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
No output schema exists, but the description explicitly states what is returned: a list of spaces with names, types (personal/group), and IDs. It also explains the tool's role in the broader workflow, making it self-sufficient given the available annotations.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Parameters4/5Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Tool has zero parameters, so the schema is fully covered vacuously. The description doesn't need to add parameter details; baseline 4 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Purpose5/5Does the description clearly state what the tool does and how it differs from similar tools?
Explicitly states the verb 'List' and the resource 'memory spaces' and explains it returns personal and group spaces. Clearly distinguishes from sibling tools like store/recall by focusing on inventorying spaces.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Usage Guidelines5/5Does the description explain when to use this tool, when not to, or what alternatives exist?
Provides direct guidance: 'Use this tool IF you need to verify available space IDs before creating or pushing records' and specifies it is for finding space_id parameters. It also notes a secondary use case for user space management.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
- Behavior4/5
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description adds meaningful behavioral detail beyond annotations: sections are upserted, existing projects are merged/updated, update_section creates sections if absent, and skills are stored as structured sections. These disclosure of mutation semantics are consistent with annotations (idempotent, non-destructive, read/write). It does not mention permissions or rate limits, but the core side effects are well covered.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Conciseness5/5Is the description appropriately sized, front-loaded, and free of redundancy?
The description is long but structured effectively: an IMPORTANT warning, high-level overview, bullet-style action list, and section-type guidance. Every sentence contributes useful context, and the length is justified by the tool's complexity. The critical usage and action information is front-loaded.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Completeness4/5Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's complexity (13 parameters, nested skill_content, no output schema), the description covers action semantics, upsert behavior, skill triggers, and common section types. It lacks explicit return/error descriptions, but for a project-profile manager, the input and usage guidance is substantially complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Parameters4/5Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the heavy lifting is already done by the schema. The description adds value by explaining when to use action-specific parameters, such as using sections for snapshots and content merging for update_section. It also lists common section types and skill naming conventions, which helps the agent choose appropriate parameter values.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Purpose5/5Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly identifies the tool as managing 'structured project profiles in FlowMCP' and distinguishes it from flat memories and built-in memory. It enumerates five specific actions (snapshot, update_section, list, save_skill, load_skill), making the tool's purpose and scope immediately evident.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Usage Guidelines5/5Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage guidance is explicit and actionable: 'Use this FlowMCP tool IN ADDITION TO your built-in memory' and 'This is more powerful than flat memories.' Each action has a clear trigger, such as 'Use when the user discusses a project with 2+ aspects' for snapshot and 'Use for incremental updates' for update_section. It also instructs to 'Check for relevant skills before starting structured tasks.'
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
- Behavior4/5
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations indicate a non-read-only, non-idempotent operation. The description supplements this with key behavioral context: the merge/replace strategy to avoid duplicates, the cross-model persistence purpose, and specific error messages. It does not contradict annotations, but could more explicitly state the risk of duplicates if recall is skipped, so it falls short of a 5.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Conciseness4/5Is the description appropriately sized, front-loaded, and free of redundancy?
The description is well-structured with clear sections: IMPORTANT note, usage instructions, content requirements, args summary, return value, and error handling. However, it is somewhat lengthy and partially redundant with the schema descriptions (e.g., listing args again). The front-loading of the 'IMPORTANT' directive is effective, but a more streamlined version would earn a 5.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Completeness5/5Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a tool with no output schema and six parameters, the description is exceptionally complete. It covers the full workflow: when to use FlowMCP, the recall-first precondition, merge/replace strategy, alternative project-specific tool, detailed parameter requirements, expected return (ID and title), and error scenarios. An agent can confidently invoke this tool correctly without ambiguity.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Parameters4/5Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema covers all six parameters with detailed descriptions, so baseline is 3. The description adds value beyond the schema by emphasizing title specificity (e.g., not "user project"), content depth ('Write the content as if a completely different AI model needs to read it'), and explaining the category enum usage. It also connects validation errors to parameter constraints, enriching semantic understanding.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Purpose5/5Does the description clearly state what the tool does and how it differs from similar tools?
The description opens with an explicit statement of purpose: 'Store a new memory in FlowMCP for cross-model persistence.' It also distinguishes itself from siblings by instructing to use flowmcp_recall for checking existing memories and flowmcp_project for project-specific context, making its scope clear.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Usage Guidelines5/5Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides explicit when-to-use guidance: 'Always check FlowMCP when the user asks about projects, technical details, or previous work.' It mandates a precondition: 'ALWAYS call flowmcp_recall first to check if a similar memory already exists.' It also names an alternative: 'prefer using flowmcp_project with action='update_section' for project-specific context.' This goes beyond typical usage guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
- Behavior5/5
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, idempotentHint=true. The description goes well beyond this by disclosing search behavior: 'The search splits your query into individual words and matches each one against titles, content, and tags. Results are ranked by how many keywords match.' It also adds context about cross-model memory coverage. No contradictions; the description complements annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Conciseness4/5Is the description appropriately sized, front-loaded, and free of redundancy?
The description is structured with clear sections: pre-prompt, function statement, critical instructions with examples, args list, and return note. It is front-loaded with the most critical usage instruction. However, the 'Args' section partially duplicates the input schema, which increases length without adding information. Still, the extra examples and emphasis make the length worthwhile.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Completeness5/5Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 6-parameter tool with no output schema, the description is remarkably complete. It explains when to use, how to search effectively (keywords, tags, categories), what results look like ('Matching memories ranked by keyword match count'), and accommodates edge cases (e.g., 'If unsure what to search for, use broad single keywords'). It covers all necessary operational aspects.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Parameters4/5Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so baseline is 3. The description adds practical value beyond the schema through specific query examples (GOOD vs BAD queries), tag usage guidance ('ALWAYS pass relevant tags when you know them'), and keyword length recommendations. These enrich the schema's already detailed descriptions, justifying a 4.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Purpose5/5Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's function: 'Search and retrieve relevant memories from FlowMCP.' It uses a specific verb ('Search and retrieve') and resource ('memories from FlowMCP'), and distinguishes itself from siblings like store, forget, list_spaces by emphasizing retrieval of existing memories for context loading. The pre-prompt reinforces its role as a memory retrieval tool.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Usage Guidelines5/5Does the description explain when to use this tool, when not to, or what alternatives exist?
Provides explicit, actionable usage guidance: 'You MUST call this tool AT THE START of ANY conversation that references...' and 'Use this at the start of conversations to load user context, before giving advice, or whenever the user references previous work.' It also explains when to use it versus the agent's built-in memory, effectively differentiating it from alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
GitHub Badge
Glama performs regular codebase and documentation scans to:
- Confirm that the MCP server is working as expected.
- Confirm that there are no obvious security issues.
- Evaluate tool definition quality.
Our badge communicates server capabilities, safety, and installation instructions.
Card Badge
Copy to your README.md:
Score Badge
Copy to your README.md:
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/tydeck1016/flow-mcp-server'
If you have feedback or need assistance with the MCP directory API, please join our Discord server