projectionlab-mcp
Server Quality Checklist
Latest release: v0.3.4
- Disambiguation5/5
Each tool has a clearly distinct role: setup handles API key configuration, export retrieves data from the browser, snapshot saves data locally, list_snapshots shows saved files, and restore reloads data. There is no overlap or ambiguity between them.
Naming Consistency4/5All tools share the 'pl_' prefix and use snake_case, which is consistent. The pattern varies slightly: some are bare verbs (pl_setup, pl_export, pl_restore) while others combine verb and noun (pl_snapshot, pl_list_snapshots), but the naming remains predictable and readable.
Tool Count5/5Five tools is well-scoped for this server's purpose—managing ProjectionLab data backups and restores. Each tool is necessary for the workflow, and there are no redundant or unnecessary additions.
Completeness4/5The set covers the core lifecycle: setup, export, save, list, and restore. The only notable gap is the lack of a delete-snapshot tool, but this is a minor omission that does not prevent the primary backup/restore workflow from working.
Average 4.5/5 across 5 of 5 tools scored.
See the Tool Scores section below for per-tool breakdowns.
- No community issues in the last 6 months
- 1 commit in the last 12 weeks
- Last stable release on
- No critical vulnerability alerts
- No high-severity vulnerability alerts
- No code scanning findings
- CI is passing
This repository is licensed under MIT License.
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?
With no annotations, the description carries the transparency burden. It discloses that the tool returns JavaScript strings, reads the API key from sessionStorage, depends on prior setup, and warns to snapshot before restoring. It does not explicitly state that the restore overwrites/destroys current data, but the strong safety warning implies it. This is substantial beyond what the schema provides.
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 front-loaded with the core purpose, then each subsequent sentence earns its place: execution instructions, sessionStorage/setup dependency, and a safety warning. It is compact with no filler or repetition.
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?
For a tool with one parameter and no output schema, the description explains the overall workflow: reading a snapshot, returning scripts, executing them in a browser, handling setup expiration, and taking a pre-restore snapshot. The only notable gap is the lack of an explicit statement about the destructive nature of the restore operation, but the caution addresses it indirectly.
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 schema already describes snapshotPath as 'Absolute path to the snapshot file to restore' with 100% coverage. The description only refers to 'a local snapshot file' without adding any new detail about the parameter's format, constraints, or behavior. Baseline 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 first sentence uses a specific verb and resource: 'Read a local snapshot file and return JavaScript strings to restore the data via the Plugin API.' It clearly differentiates from siblings like pl_snapshot (creating a snapshot) and pl_export (exporting current state) by focusing on restoring from a snapshot via generated scripts.
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?
The description gives clear execution context: run the returned scripts in the browser using Playwright or Chrome DevTools MCP. It also states a prerequisite (run pl_setup again if the tab closed) and a strong recommendation to snapshot before restoring. It lacks explicit 'when not to use' or alternative tool references, but the usage context is unambiguous.
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 context beyond the readOnlyHint annotation by disclosing that the tool returns a script rather than performing the export directly, and that it reads the API key from sessionStorage set during pl_setup. This is useful behavioral information. It does not contradict the annotation, and while it doesn't detail return format, the added context is valuable.
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 three sentences, front-loaded with the core purpose, and every sentence adds necessary operational detail. There is no repetition of schema or annotation information, and no filler content.
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 zero-parameter input, the readOnlyHint annotation, and lack of output schema, the description adequately covers how to use the tool and its prerequisites. It explains the returned script's execution context and dependency on setup. It could mention the data format or error scenarios, but these are not essential for invocation.
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 tool has zero parameters, and the description correctly avoids discussing any. The parameter schema is empty, and the description doesn't need to compensate. Baseline for 0 params is 4, which is appropriate here.
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 a specific verb and resource: 'Returns a JavaScript string that exports all ProjectionLab data via the Plugin API.' This clearly distinguishes it from sibling tools like pl_setup, pl_snapshot, pl_list_snapshots, and pl_restore, which handle setup and snapshot lifecycle. The purpose is unambiguous and informative.
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?
The description provides clear execution context: 'Execute this script in the browser using the Playwright or chrome devtools MCP.' It also states the prerequisite that pl_setup must have run and that rerunning is necessary if the tab was closed. This is practical guidance, though it does not explicitly mention alternatives or when not to use the tool.
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?
With no annotations provided, the description carries the transparency burden. It discloses a notable behavioral trait: 'API keys are redacted before writing.' However, it does not mention overwrite behavior, file location, or return values, though these are less critical for a simple snapshot save.
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 two sentences, front-loaded with the main purpose. Every sentence adds value: the first states the action and target, the second explains how to obtain data and the redaction behavior. No wasted words.
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?
For a simple tool with no output schema and no annotations, the description is largely complete: it states the action, what data to pass, and an important post-processing detail (redaction). Missing return value/error info is a minor gap, but the tool's simplicity reduces the risk of misuse.
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 extra meaning by specifying that 'data' comes from running the pl_export script in the browser, which clarifies how to obtain and pass the parameter. The 'label' parameter is already described in 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 'Save ProjectionLab export data as a local snapshot file,' using a specific verb and resource. It distinguishes from sibling tools (pl_export, pl_list_snapshots, pl_restore) by indicating this tool writes data to a local snapshot.
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?
The instruction 'Pass the data you got from running the pl_export script in the browser' provides clear context of when to use this tool, tying it to the pl_export workflow. It does not explicitly mention exclusions or alternatives, but the sibling names make the intended use clear.
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 valuable behavioral context beyond the annotation: it discloses the sorting order and the exact return fields (filename, path, creation time, size). The readOnlyHint annotation already signals safety, and the description enriches that with specifics.
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 a single, focused sentence that conveys the essence: what it does ('List all saved local snapshots'), ordering ('newest first'), and output (four specific fields). No filler or redundancy.
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?
The tool has no parameters and no output schema, so the description carries the full burden. It mentions the sorting, the scope ('all'), and the exact return fields, making the tool's behavior and results fully predictable.
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?
With zero parameters and an empty schema, the description necessarily carries no parameter info, but baseline 4 applies per the rubric. The description's mention of return fields gives a sense of what the tool operates on, which is sufficient.
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?
Purpose is explicitly stated with a specific verb and resource: 'List all saved local snapshots'. It also specifies the ordering ('sorted newest first') and distinct return fields, clearly distinguishing it from sibling tools that create, export, restore, or set up snapshots.
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?
The description clearly implies when to use this tool: whenever you need to list snapshots. It doesn't explicitly mention exclusions or alternatives, but there are no other listing tools among the siblings, so the context is clear enough.
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?
With no annotations, the description fully discloses behavior: the API key never leaves the browser, uses sessionStorage, runs client-side validation, and returns only a success/failure boolean. It also clarifies the two-step state machine, making the tool's internal behavior predictable and safe.
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 well-structured and front-loaded with a concise summary, followed by numbered steps and security details. Every sentence contributes useful information without redundancy, and the format is easy to parse for an AI agent.
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?
Given the tool's simplicity (one optional param, no output schema), the description covers all necessary context: the two-step flow, security model, what the script does, how to execute it, and the return value. No critical gaps remain.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Parameters5/5Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The description adds significant meaning beyond the schema's minimal 'Result from executing the extractScript'. It explains that validationResult confirms key validity and completes setup, and clarifies that calling with no args triggers the first step. This is essential contextual information for correctly using the optional parameter.
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 'Guided setup for the ProjectionLab Plugin API key' with a specific verb and resource. It distinguishes setup from sibling tools like pl_export and pl_snapshot by focusing on API key initialization and validation rather than data operations.
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?
The description provides explicit step-by-step usage: call with no args first, then call with validationResult. It also directs the user to execute the extractScript via Playwright or chrome devtools MCP. It lacks explicit when-not-to-use or alternative guidance, but the flow is unambiguous.
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/mormubis/projectionlab-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server