customaise
OfficialServer Quality Checklist
Latest release: v3.2.0
- Disambiguation4/5
Each tool maps to a distinct action, and the long descriptions clearly disambiguate edge cases like shared scripts and import/export direction. The only real risk is that import_script, export_script, and sync_scripts all move files in different directions and could be confused if an agent reads only the names.
Naming Consistency4/5The set overwhelmingly follows a snake_case verb_noun pattern: list_*, get_*, toggle_*, *_tab, *_script. The main deviation is that sync_scripts and list_webmcp_tools use plurals, and 'export' appears in both directions across export_script and sync_scripts.
Tool Count3/5At 19 tools this sits in the 16-25 range that feels heavy for an MCP surface. The breadth is defensible because script editing, browser tab control, context capture, and WebMCP execution all need coverage, but the count is still on the high side.
Completeness4/5The script lifecycle (list, import, export, delete, toggle, sync, fork) and tab lifecycle (list, open, close, reload, focus, screenshot) are both well covered. Minor gaps remain around creating a brand-new script without a local file and unsubscribing from shared scripts, but these are workaroundable via export_script and the extension UI.
Average 4.4/5 across 19 of 19 tools scored. Lowest: 3.5/5.
See the Tool Scores section below for per-tool breakdowns.
- No community issues in the last 6 months
- 4 commits in the last 12 weeks
- Last stable release on
- No critical vulnerability alerts
- No high-severity vulnerability alerts
- No code scanning findings
- CI status not available
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
- Behavior1/5
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description frames the tool as a visibility toggle: 'Show or hide' and 'make the Customaise interface visible or dismiss it.' A toggle is inherently non-idempotent because the effect of a second call depends on the current state. This directly contradicts the annotation idempotentHint: true, which tells the agent that repeated identical calls produce the same outcome. An agent could call the tool twice expecting no change and end up reversing the UI state.
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 compact at two sentences and front-loads the core action. There is slight redundancy between 'Show or hide' and 'make the Customaise interface visible or dismiss it,' which prevents a perfect conciseness score.
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 small tool with two optional parameters and no output schema, the description covers what it acts on, where it acts, when to use it, and the optional panel behavior. It does not explain return values, but that is not critical for a UI toggle tool. The main contextual gap is the misleading idempotence annotation, already captured in behavioral transparency.
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%, so the parameters are already fully documented: panel has its allowed values and tabId defaults to the active tab. The description mostly restates this ('active tab', 'Optionally specify which panel to open') without adding new semantic detail 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 a concrete action ('Show or hide') on a specific resource ('the Customaise UI overlay on the active tab'). It also distinguishes itself from sibling tools like toggle_script by making clear it controls the UI overlay, not a script. The mention that AI agents cannot click the extension icon directly adds useful purpose context.
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 an explicit use case: make the Customaise interface visible or dismiss it, including why this tool is necessary for AI agents. It does not enumerate when-not-to-use cases or explicitly contrast with alternatives such as toggle_script, so it falls just short of a 5.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
- Behavior3/5
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description discloses the concrete behavior—bringing a tab to the front and activating it—which goes beyond the abstract annotations (idempotentHint, destructiveHint). But it does not mention failure behavior for invalid tab IDs or any prerequisites such as the tab being in the same window, leaving some behavioral gaps.
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 11-word sentence that front-loads the action and includes no filler. Every word contributes to the meaning.
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 simple tool with one required parameter, a fully described schema, and no output schema, the information provided is sufficient for an agent to invoke it correctly. The sibling tool list_tabs implies where tab IDs come from, completing the context.
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 provides 100% coverage: tabId is a number described as 'The ID of the tab to focus'. The description adds no additional detail about the parameter itself, so the 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 states a specific verb ('Bring'), a resource ('a specific browser tab'), and the outcome ('to the front and make it active'). This clearly distinguishes it from sibling tools like open_tab (creating/opening a new tab) and close_tab/reload_tab.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Usage Guidelines3/5Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage is implied: you use this when you have an existing tab ID and want to bring that tab to the foreground. However, there is no explicit guidance about when not to use it or which alternative to choose (e.g., open_tab for new tabs), so the agent must infer the appropriate context.
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 indicate destructive behavior (destructiveHint=true) and non-read-only status, so the description does not need to restate that closing destroys a tab. It adds meaningful behavioral context beyond annotations by explaining the active-tab fallback when tabId is omitted.
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 concise sentence that front-loads the core purpose and immediately states the key optional-parameter behavior. There is no filler or repetition of structured annotation fields.
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 one-optional-parameter destructive action, the description covers what the tool does and the critical edge case (no tabId). Annotations cover the destructive and non-read-only nature, and no output schema is expected for this simple close operation. Nothing an agent needs to call it correctly is missing.
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 description coverage is 100%, and the tabId parameter is adequately described as 'The ID of the tab to close' in the schema. The tool description adds only the fallback behavior tied to omitting tabId, not new parameter-level semantics, so the 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 uses a specific verb and resource: 'Close a specific browser tab.' It clearly distinguishes this tool from siblings like open_tab, reload_tab, and focus_tab by naming the action it performs. The default behavior for absent tabId is also stated plainly.
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 invocation context: use a tabId to target a specific tab, or omit it to close the active tab. It does not explicitly enumerate alternatives or when-not-to-use scenarios, but the verb and sibling set make the intended use obvious.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
- Behavior3/5
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, so the safety profile is fully covered. The description adds the concrete output fields but no additional behavioral traits beyond what the annotations establish, so it does not need to over-explain.
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 with no fluff. It leads with the core action and output fields, then immediately states the practical use case for finding tab IDs.
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 no-parameter read-only listing tool, the description is complete. It names the output fields (IDs, URLs, titles, active status) and explains why that output matters by linking to sibling tools. No output schema exists, but the description covers the essential return information.
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 takes zero parameters, so there is no parameter semantics for the description to clarify. The schema is complete and the description adds all relevant context about what the tool returns.
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 uses a specific verb, 'List', and identifies the resource, 'all open browser tabs', along with the exact fields returned: IDs, URLs, titles, and active status. It clearly distinguishes this tool from action-oriented siblings like open_tab, close_tab, and reload_tab.
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 context: use this tool to find a tab ID for downstream tools like reload_tab or take_screenshot. It does not explicitly discuss when not to use it or compare it to alternative list tools, but there is no real sibling alternative for listing tabs.
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?
Beyond the annotations, the description reveals that the tab opens in the background by default to avoid disrupting the user, which is behavior not captured by readOnlyHint, openWorldHint, or destructiveHint. It also discloses the return value. This is useful behavioral context that annotations alone do not provide.
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 concise, front-loaded with the core action, and each sentence adds distinct value: what it does, the default behavior and rationale, and the return value. 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?
For a simple two-parameter action tool with full schema coverage and relevant annotations, the description is complete: it covers behavior, default semantics, return value, and user impact. No output schema is required since the return type is mentioned explicitly.
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 description coverage is 100%, so the parameters are fully documented in the schema. The description adds a brief user-context rationale for the background default, but largely reiterates what the schema already states, so it does not significantly elevate parameter understanding beyond 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 a specific verb ('Open') and resource ('a new browser tab') with the specified URL, which distinguishes it from sibling tools like close_tab, list_tabs, and focus_tab. It also mentions returning the new tab ID, adding useful purpose specificity.
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 context on default behavior (background opening) and explains when the 'active' parameter should be set to true, helping the agent decide appropriate usage. It does not explicitly reference alternative sibling tools, but the context is sufficient for this simple operation.
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 indicate a non-read-only, idempotent, non-destructive mutation. The description adds a behavioral consequence beyond the schema: disabled scripts are not injected into matching pages. This gives agents useful context about the real effect of disabling.
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?
Three short sentences, each earning its place: the action, the behavioral effect, and the intended use case. No filler or repetition.
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 simple toggle tool with two required parameters and annotations covering mutability, idempotence, and destructiveness, the description is complete enough for an agent to invoke it correctly.
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%, and both parameters are clearly described in the schema itself. The description adds no new parameter-level detail, so the baseline score of 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 uses a specific verb pair (enable/disable) with a clear resource (userscript), and distinguishes itself from deletion by explicitly noting this does not delete the script. This is enough to separate it from delete_script and list_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?
It explicitly states the intended use case: temporarily turning off a script without deleting it. It does not enumerate alternatives or explicit when-not-to-use conditions, but the contrast with deletion makes the primary usage context clear.
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?
Behavioral transparency is excellent. The description discloses that interactive tools trigger a native user prompt, that approval can take minutes, that the server sends progress notifications, that a fixed-timeout client may falsely report failure while the tool still runs, and that re-issuing side-effecting calls is dangerous. This goes well beyond the annotations and directly informs safe agent behavior.
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 primary purpose in the first sentence. The subsequent sentences are longer but each earns its place by explaining approval latency, progress notifications, timeout failure, and safe recovery behavior. No sentence is filler.
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 generic nature of the tool, the description covers the most important contextual risks: side effects, non-idempotence, approval delays, and timeout handling. It does not describe return values or how to enumerate valid WebMCP tools, but the sibling list_webmcp_tools and the schema's exact-name requirement cover part of that gap.
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 description coverage is 100%, so the baseline is 3. The description does not add parameter-specific meaning beyond the schema, but it also does not need to: toolName, tabId, and toolArgs are already described adequately in the input 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 opens with a specific verb and resource: "Execute a registered WebMCP tool directly on the target browser tab." This clearly differentiates the tool from siblings like list_webmcp_tools, which only lists available tools, and from browser-control actions like focus_tab or reload_tab.
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 context for when this tool is invoked and what conditions apply, including interactive approval and timeout behavior. It lacks an explicit "when not to use" statement or named alternative, but the timeout guidance about checking outcomes before re-issuing side-effecting calls provides practical usage direction.
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 details the sanitization pipeline (syntax checking, AST validation, security analysis), explains what happens on success vs failure, and reveals the read-only nature of shared/subscribed scripts. It also states that 'allow' resolves as 'prompt' in AgentScripts, which is important behavioral nuance. However, it does not describe exactly what 'destructiveHint: true' implies (e.g., what happens to the previous version on update), and it doesn't mention whether the export overwrites or versions existing scripts. Given annotations already signal destructive/idempotent hints, the description adds substantial context beyond them.
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 paragraphs and front-loaded purpose. It is longer than ideal, but every sentence adds necessary guidance—especially the script-type reminders. The formatting is scannable with line breaks. Slightly long, but justified by the complexity of the tool.
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 description provides a complete operating picture: purpose, validation pipeline, success/failure behavior, shared-script restrictions, fork workaround, and detailed requirements for both UserScripts and AgentScripts. With no output schema, the description does an excellent job of explaining what to expect (detailed diagnostics on failure, ready-to-execute on success). The contextual signals and sibling list leave few gaps; an agent has enough to select and invoke this tool correctly.
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 schema already documents filePath and scriptId. The description adds critical behavioral meaning to scriptId (update existing vs create new) and clarifies the filePath is 'local file path'. This meaningfully supplements the schema, especially by explaining the update semantics and the fork workflow.
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 verb 'Export' with a specific resource (script from a local file into Customaise), and immediately distinguishes it from import_script (which forks shared scripts). It also explains the create-vs-update behavior via scriptId, so there is no ambiguity about what this tool does.
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 explicitly states when to use this tool (export a local script, update an existing script via scriptId) and provides an explicit alternative path for shared/subscribed scripts (call import_script with fork:true). It lacks a fully comprehensive when-not-to-use statement for all sibling tools, but the key exclusion—overwriting shared/subscribed scripts—is clearly covered.
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?
The description adds significant behavioral detail beyond the readOnlyHint/idempotentHint annotations: it discloses that each entry carries a permission field, that 'prompt' blocks on a consent modal for up to 5 minutes, and that 'deny' fails immediately. It also advises the agent to proactively inform the user about calls requiring approval, which is beyond what annotations provide.
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 action and purpose, followed by targeted behavioral guidance. Every sentence adds value, including the permission-field warning, without redundancy or filler.
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 optional-parameter list tool with no output schema, the description adequately explains what the tool returns conceptually (entries with permission fields) and how to act on it. It does not enumerate all potential output fields, but the key decision-relevant information 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 documents the single optional tabId parameter with 100% coverage. The description mentions the tab target but does not add format, default, or usage details beyond the schema, so the baseline 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 states a specific verb ('List'), a resource ('WebMCP tools'), and a scope ('for a specific browser tab'). It also names the verification use case, which clearly distinguishes it from sibling tools like call_webmcp_tool, list_scripts, and get_bridge_status.
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 explicitly says when to use it: to verify that an exported AgentScript is correctly registering its tools on the target page. It gives clear context but does not explicitly state when not to use it or name alternative tools, so it misses the exclusionary guidance needed for a 5.
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 mark destructiveHint=true and readOnlyHint=false, but the description adds meaningful context beyond those flags: deletion is irreversible and ownership restricts deletability. This is valuable behavioral detail not available from the schema or annotations alone.
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?
Three concise sentences with the core action front-loaded and important caveats following immediately. Every sentence adds useful information with 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?
For a single-parameter destructive operation with rich annotations and clear descriptions of ownership constraints, this is complete. The description covers the action, irreversibility, and the key edge cases an agent needs to avoid calling delete_script incorrectly.
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 description coverage is 100% and the single parameter `scriptId` is already described as 'The ID of the script to delete'. The tool description adds no further parameter-level meaning, so the baseline 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?
States a specific verb (delete), resource (UserScript or AgentScript from Customaise), and permanence. The scope is clear enough to distinguish from related script tools like import_script, export_script, and toggle_script.
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 when-not-to-use guidance: shared/subscribed scripts cannot be deleted via MCP and must be unsubscribed in the extension UI. It also clarifies that owned forks created via import_script(fork:true) are deletable, giving the agent a clear decision rule.
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?
The description fully discloses the non-obvious side effect that contradicts what 'get' suggests: 'WRITES A FILE by default' to .customaise/page-context.json, returns only a summary plus path, and explains why (keeping large payloads out of the context window). It also gives the recovery path (view_file/grep_search, or output: "inline" to write nothing). This aligns with readOnlyHint=false and adds context beyond what annotations provide, with no contradiction.
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 about 90 words and front-loads the core purpose before the caveats. Each sentence earns its place: what, when, side effect, path, and fallback. The 'WRITES A FILE' emphasis is effective at flagging the side effect, though behavior of the output parameter is described both here and in the schema, adding slight redundancy.
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 carries the burden of explaining the return contract, and it does: summary plus path by default, full snapshot for 'inline', exact file location, and how to read it. The only minor gap is that it doesn't describe the structure or size of the snapshot file itself, which could matter for very large pages.
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 baseline is 3. The description adds value beyond the schema by explaining how to consume the file output ('Read the file with view_file or grep_search') and the scenario justifying the 'inline' mode (chat client without filesystem tool), enriching the output parameter semantics.
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 uses a specific verb and resource: 'Get a DOM snapshot of the current page including URL, title, page structure, and visible elements.' This clearly distinguishes it from siblings like get_console_context (console vs page) and get_selected_elements (selection vs whole page), so an agent can tell them apart without opening schemas.
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 usage context: 'Use this to understand the page layout before writing userscripts that manipulate it.' It also offers conditional routing guidance ('If you have no filesystem tool, pass output: "inline"'), but it does not explicitly name alternatives or state when not to use this tool versus sibling inspection tools.
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 annotations, the description discloses two important behaviors: it waits for the page to fully load before returning, and it waits for AgentScript/WebMCP tools to re-register. This is genuinely useful stateful behavior that an agent could not infer from the schema or annotations.
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?
Three short sentences with no filler: purpose, usage context, and blocking behavior are each given exactly one sentence. The most important information is front-loaded.
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 optional-parameter utility, the description covers what it does, when to use it, and its blocking/registration behavior. No return value or output schema is needed for an operation whose main result is the reload itself.
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% and the only parameter, tabId, is already documented as defaulting to the active tab. The tool description adds no additional parameter semantics, which is acceptable given the high schema coverage.
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 — 'Reload a browser tab' — and adds the precise purpose 'to re-inject updated userscripts.' This clearly distinguishes it from siblings like open_tab, close_tab, and focus_tab.
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?
It explicitly says to use this tool after export_script to see the effect of changes, giving a concrete workflow context. It does not mention when not to use it or name alternatives, so it falls just short of full 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?
The description goes well beyond the destructiveHint/readOnlyHint annotations by detailing the exact side effects: it writes many files, overwrites matching local files, permanently loses unexported local edits, and creates a .customaise-manifest.json. It also explains shared/subscribed script exclusion. This is precisely the kind of behavioral context that annotations alone cannot provide, and there is no contradiction.
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?
Every sentence earns its place: the action, the destructive warning with its consequence, the manifest artifact, the exclusion rule, and the recommended use case. The warning is front-loaded after the first sentence and uses clear emphasis without becoming filler.
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 one-parameter, bulk file-export tool, the description fully covers what the tool does, what it destroys, what it creates, what it excludes, and when to use it. There is no output schema, but the outcome is described through its filesystem effects and the manifest, so an agent has enough information to select, parameterize, and predict the operation.
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 documents the only parameter with 100% coverage, including an example value ('./customaise-scripts/'). The description reinforces that scripts go 'to a local directory' and adds file-extension details, but it does not materially deepen the meaning of the directory parameter beyond what the schema already provides.
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 clearly states a specific verb ('Bulk export'), a resource ('all your own scripts from Customaise'), and a concrete result ('to a local directory as individual .user.js or .agent.js files'). It also distinguishes itself from siblings by emphasizing bulk operation over all own scripts and explicitly excluding shared/subscribed 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 an explicit intended use case ('set up a local workspace for editing scripts with your IDE') and makes the exclusion of read-only shared/subscribed scripts clear. However, it does not explicitly name a single-script alternative like export_script or state when not to use sync_scripts, so the routing guidance is strong but not fully explicit.
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 (readOnlyHint=true, idempotentHint=true, destructiveHint=false), the description discloses that the tool consumes zero cap units and reads state already held by the server rather than calling the browser. This is meaningful behavioral context an agent would not otherwise know.
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?
Two sentences with no filler: the first captures the tool's full semantic scope, and the second adds cost behavior plus a practical checkpoint. The structure front-loads the core purpose and supports quick agent scanning.
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 zero-parameter status tool with no output schema, the description is complete: it lists every reported aspect, explains the cap-cost behavior, and gives a concrete when-to-call scenario. An agent has enough to invoke it correctly and interpret its purpose.
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?
There are zero parameters and the schema is trivially 100% covered with no properties. No parameter documentation is needed, so the baseline of 4 for parameterless tools applies; the description correctly focuses on outputs and usage instead.
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: 'Report the bridge's own state,' and enumerates the exact state fields it returns (extension attached, plan tier, signed-in status, remote approvals, MCP cap usage). This clearly distinguishes it from sibling tools that operate on tabs, scripts, or WebMCP actions.
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?
It gives explicit guidance: 'Check this before a long run' and explains the economic rationale by noting it costs no cap units. It does not mention when-not-to-use or name an alternative, but for a unique status check the main use case is clear.
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?
The description discloses a critical side effect beyond the annotations: it writes a full log file to .customaise/console-context.json by default and returns only counts plus the path. It also clarifies that inline output writes nothing to disk. This meaningfully complements the readOnlyHint: false annotation without contradicting it.
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 dense but every sentence earns its place: purpose, recommended usage, side effect, return behavior, and fallback guidance. It is front-loaded with the core purpose before the operational details.
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?
Since there is no output schema, the description correctly explains what the tool returns: counts plus the file path by default, or the whole log inline. It also gives enough operational detail for an agent to use the tool safely and effectively without needing more documentation.
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 input schema already documents all three parameters with 100% coverage, so the baseline is 3. The description adds practical meaning to the output parameter by explaining why you might choose inline instead of file, which goes beyond the schema's enum descriptions.
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?
States a specific verb and resource: getting console logs from the browser, including errors, warnings, and userscript GM_log output. It clearly distinguishes the tool's purpose from sibling tools by describing what type of data it retrieves and when to use it.
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?
Explicitly recommends using this tool after reload_tab to check for script runtime errors. It also provides clear context for choosing output modes, including when to use inline versus file output. However, it does not name or exclude an alternative sibling tool explicitly.
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?
Discloses the key side effect beyond annotations: file writes only happen when writeFiles: true, and otherwise no filesystem access is needed. It also explains real-time auto-push behavior when MCP is connected, adding useful behavioral context not captured by 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 front-loaded with the core purpose and then expands into optional file-writing and MCP integration. It is a bit longer than strictly necessary, but each sentence contributes functional guidance, so the length is justified.
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 compensates by summarizing what is returned: selectors, element context, and user comments. It covers the main side effects and usage conditions. It could be more precise about the response shape or error cases, but the core information an agent needs to call it correctly is present.
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 baseline is 3. The description adds meaning by explaining that the response itself contains the selections, that writeFiles triggers .dom.md file creation, and that directory is tied to that behavior. This goes beyond the raw schema wording.
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: 'Get DOM elements that the user has visually selected in the browser for a specific script.' It clearly specifies what is returned (selectors, element context, user comments) and distinguishes itself from file-based retrieval by noting it returns data directly in the response.
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?
Explicitly states when to use the tool: 'Use this tool to retrieve selections if the auto-pushed files are missing or to get the raw JSON data.' It also explains the alternative auto-push mechanism and points to CM_findElement for downstream targeting, providing clear decision context.
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, idempotentHint, and destructiveHint=false, but the description adds meaningful behavioral context beyond those: it discloses that isShared scripts cannot be imported, exported, or deleted directly, and explains how to work around that (fork or UI unsubscribe). With no output schema present, the description also carries the burden of describing return fields, which it does thoroughly.
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?
Four sentences, each earning its place: the first states the primary action and output, the second explains the shared-script constraint, and the next two give targeted next steps. It is front-loaded with the main purpose and contains no fluff or repetition.
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 parameterless read-only tool with no output schema, the description is fully complete: it specifies what the tool returns, identifies the isShared edge case, and covers the two relevant follow-up actions (forking and unsubscribing). An agent has everything needed to invoke it correctly and interpret its results.
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 input schema has zero parameters, so the baseline is 4 and there are no parameter semantics to clarify. The description adds no parameter-related details because none exist, and no further compensation is needed.
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: 'List all scripts (UserScripts & AgentScripts) installed in Customaise', and enumerates the exact returned fields (IDs, names, enabled status, match patterns, shared status). This clearly differentiates it from sibling list tools like list_tabs and list_webmcp_tools, which target different resources.
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 contextual guidance: it explains that shared scripts are read-only subscriptions and explicitly directs the agent to import_script with fork:true for editing and to the extension UI for uninstalling. It does not explicitly contrast with sibling listing tools, but the usage context is unambiguous and names an alternative tool where relevant.
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, it discloses that fork always creates a new script, clears subscription/publish links, lands the script disabled, and returns the new scriptId rather than the original. These are side effects an agent cannot infer from readOnlyHint=false or destructiveHint=false.
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?
While long, the description is organized into scannable paragraphs and bullets with no redundant filler; every block adds decision-relevant information. The critical fork behavior is front-loaded before the detail.
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 mutating tool with no output schema, it explains the key return semantics (returned scriptId is the new script), the file write target, and the error path for subscribed scripts without fork. This gives an agent enough to call and continue the edit/export workflow safely.
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 input schema already documents all three parameters, and the description adds meaningful operational nuance: what 'fork' means for owned vs shared sources, the lineage/publishedShareId clearing, and the D10 disabled-landing behavior. It also reinforces the filePath rule about workspace-relative paths, which is directly actionable.
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?
Opens with a specific verb and resource ('Import a Customaise script... to a local file for editing') and clearly identifies the output as full source with metadata block. The contrast with export_script in the first paragraph distinguishes it from the obvious sibling without ambiguity.
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?
Explicitly names export_script as the follow-up for pushing changes, and specifies the exact condition for using fork (subscribed/shared sources) plus the refusal behavior when fork is omitted. This tells an agent not just what the tool does but when it is the right call.
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?
Discloses side effects not inferable from annotations: writes a PNG file by default, returns a path rather than image bytes, and shows a transient Chrome devtools notice for background/full-page captures. This complements the readOnlyHint=false annotation rather than contradicting it.
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?
Front-loaded with the core purpose and focus-stealing constraint, then covers full-page capture, file behavior, inline fallback, and the transient notice. Each sentence adds distinct information and the length is proportionate to the tool's behavior.
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, the description adequately covers return behavior in both output modes and the key side effect of writing to disk. Defaults such as active tab, visible viewport, and file output are specified either in the description or schema, so an agent has what it needs to call correctly.
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 already documents all parameters at 100% coverage, so the baseline is 3; the description adds useful behavior around filePath auto-generation and inline image attachment. It clarifies what output modes return without repeating schema syntax.
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?
States a specific action (capture a screenshot), a resource (browser tab), and a notable constraint (without stealing focus). It is clearly distinct from sibling tab tools like reload_tab and close_tab, even though no alternative screenshot tool exists.
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 selection guidance: default viewport vs fullPage: true, and file output vs inline output with the condition 'If you have no filesystem tool'. This tells an agent exactly when to use each mode.
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/getcustomaise/customaise-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server