flashid-mcp
OfficialThis MCP server lets AI agents manage FlashID anti-detect browser profiles, tags, proxies, folders, trash, and browser automation via natural language.
Connection: Verify FlashID desktop app and API key are reachable with
check_connection.Profiles: List, get details, create, update, quick-update, delete/move to trash, restore, permanently delete, and star/unstar profiles.
Fingerprints: Generate random coherent fingerprints, fetch selectable fingerprint options, and create profiles with auto-generated fingerprint fields.
Tags: List, create, update, delete tags, and attach/detach tags to/from profiles.
Proxies: List, add, update, delete, test proxies, list rotating-proxy regions, and bind static or rotating residential proxies to profiles.
Folders: List, create, rename, and delete folders, and organize profiles into folders.
Browsers: Open a profile browser (returns CDP endpoints for Puppeteer/Selenium/Playwright), close browsers, and list running browsers with automation endpoints.
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@flashid-mcpCreate a new Windows 11 profile and open a browser with it"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
flashid-mcp
MCP (Model Context Protocol) server for the FlashID client. It lets AI agents — Claude Code, Claude Desktop, Cursor and any other MCP client — manage your FlashID browser profiles, tags, proxies and folders, and open/close browsers with automation endpoints, all through natural language.
Requirements
The FlashID desktop app installed and running, with Local API enabled (FlashID → Settings → Local API)
Your FlashID API key (FlashID → Settings → API Access)
Node.js ≥ 18 (
npxcomes with it)
Related MCP server: hotlogin-mcp
Setup
Claude Code
claude mcp add flashid -e FLASHID_API_KEY=your-api-key -- npx -y flashid-mcpClaude Desktop / Cursor
{
"mcpServers": {
"flashid": {
"command": "npx",
"args": ["-y", "flashid-mcp"],
"env": { "FLASHID_API_KEY": "your-api-key" }
}
}
}Environment variables
Variable | Default | Description |
| — | Your FlashID API key (required for authenticated connection checks and all business tools) |
|
| Port of the FlashID Local API, if you changed it in Settings |
CLI flags --api-key / --port override the environment.
Tools
Group | Tools |
System |
|
Profiles |
|
Tags |
|
Browsers |
|
Proxies |
|
Folders |
|
Trash |
|
Try it
Create 3 Windows 11 profiles named shop-1..3, bind my proxy 1.2.3.4:1080 to them, and open the first one.
create_profile only requires system — omitted fingerprint fields are auto-generated as a coherent random fingerprint by FlashID. Pass tag_uuids to create_profile / update_profile, or use the attach/detach tools to manage profile tags independently. For a rotating residential proxy, set proxy.session_sticky_ttl to 30, 60, 90, or 120; omit it on create for the default 30 minutes, or on update to preserve the current duration.
Page automation
open_browser returns CDP automation endpoints:
{ "id": "…", "ws": { "puppeteer": "ws://127.0.0.1:9222/devtools/browser/…", "selenium": "127.0.0.1:9222" }, "debug_port": 9222 }Hand ws.puppeteer to Playwright/Puppeteer (puppeteer.connect({ browserWSEndpoint })) or to a browser-automation MCP server to drive pages inside the fingerprinted browser.
Troubleshooting
Run the check_connection tool first — it verifies that the FlashID app is reachable and that the configured API key is valid. Full API reference: www.flashid.net/api-reference.
Development
npm install
npm run build # tsc → dist/
npm test # vitest
npm run check-coverage # tool coverage vs contract/openapi.jsonLicense
Available Tools
26 toolsadd_proxiesAdd proxiesA
Save one or more proxies (max 500 per call). Only proxy_type / proxy_host / proxy_port are required. Duplicates already in the account are detected and skipped.
| Name | Required | Description | Default |
|---|---|---|---|
| proxies | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations are limited to openWorldHint=false and destructiveHint=false. The description adds valuable behavioral details: duplicates are detected and skipped silently, a 500-per-call limit, and that only three fields are required. This goes beyond the annotations and helps the agent understand side effects and constraints.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise: two sentences, front-loaded with the core action. Every sentence adds useful information: the operation, the limit, required fields, and duplicate handling. No wasted words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With one parameter and no output schema, the description covers the key aspects: what it does, limits, required fields, and duplicate behavior. It does not detail the return value or error handling, but for a create-like operation with a well-structured schema, this seems adequate. Sibling tools are differentiated, and the behavior is clearly scoped.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must compensate. It does mention the three required fields, which aligns with the schema, but it does not explain optional parameters or values like proxy_type enums. The schema itself contains descriptions for nested fields, so the description adds some value but not comprehensive parameter guidance.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's function: 'Save one or more proxies' with a specific verb (save) and resource (proxies). It distinguishes from sibling tools like list_proxies, update_proxy, and delete_proxy by focusing on adding new entries. The mention of 'max 500 per call' and duplicate handling further clarifies scope.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides clear context for when to use the tool (adding proxies) and specifies required fields ('proxy_type / proxy_host / proxy_port are required') and a constraint (max 500). However, it does not explicitly state when not to use it or mention alternatives, though the operation is straightforward and sibling tools are distinct in purpose.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
check_connectionCheck FlashID connectionARead-only
Verify that the FlashID desktop client is reachable and that the Local API and API key are set up. Call this first when any other tool fails, to diagnose the setup.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, and the description adds context about what is verified (client reachability, Local API, API key). It does not elaborate on error behavior or return format, but for a simple diagnostic check, this is adequate.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, front-loaded with the action, and no redundancy. Every word earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool has no parameters, a read-only annotation, and no output schema, the description sufficiently covers purpose and usage context. It explains why and when to use the tool, which is complete for its simple scope.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool has zero parameters, so the description has no parameter burden. Baseline for 0 parameters is 4, and the description doesn't need to explain any input semantics.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool verifies FlashID client reachability and API setup, using a specific verb ('verify') and resource. It distinguishes from siblings like 'check_proxy' by focusing on the FlashID desktop client and API key setup.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The phrase 'Call this first when any other tool fails, to diagnose the setup' provides explicit conditional usage guidance. It clearly tells the agent when to invoke this tool relative to others, even though it doesn't name alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
check_proxyCheck proxyARead-only
Test connectivity of a proxy (saved or not) and return its detected exit IP and geo info. May take up to a minute for slow proxies.
| Name | Required | Description | Default |
|---|---|---|---|
| host | Yes | ||
| port | Yes | Proxy port (number or numeric string) | |
| type | Yes | ||
| password | No | ||
| username | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate the operation is read-only, and the description adds useful behavioral context: 'May take up to a minute for slow proxies' and that it works with 'saved or not' proxies. This provides latency and scope hints beyond the structured annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is just two sentences, front-loaded with the primary action and outcome, followed by a relevant caveat. There is no redundant or filler content; every word contributes value.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description covers the core purpose, return value summary, and a latency caveat, which is adequate for a simple tool. However, it lacks parameter explanations and does not differentiate from the sibling tool check_connection, which could be similarly used. Given no output schema, the return info is only high-level.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is low (20%), only describing the port parameter. The description does not explain host, type, username, or password fields, nor does it compensate for the lack of schema descriptions. The phrase 'saved or not' hints that parameters can be provided directly, but no field-level semantics are given.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb ('test connectivity') with a clear resource ('a proxy') and distinguishes from siblings by noting 'saved or not' (works with ad-hoc proxies). It also specifies the return value ('detected exit IP and geo info'), making the tool's purpose unmistakable.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description clearly implies when to use this tool: to verify a proxy's connectivity and get its exit details, whether the proxy is saved or not. It does not explicitly name alternatives or exclusions, but the context is clear enough for an agent to decide between this and other proxy-related tools like list_proxies or check_connection.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
close_browserClose browsersAIdempotent
Close one or more running browsers by profile UUID.
| Name | Required | Description | Default |
|---|---|---|---|
| profile_uuids | Yes | Profile UUIDs to close |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already provide idempotentHint=true and destructiveHint=false. The description adds the 'by profile UUID' scoping, which is useful, but it does not go beyond that to describe error behavior, effects on profile data, or what happens when a browser is not running. Given the annotations, this is adequate but not exceptional.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence with no filler, effectively conveying the tool's purpose in minimal words. It earns every character and is well structured.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
This is a simple one-parameter tool with clear annotations (idempotent, non-destructive). The description explains what it does and the schema covers the parameter. Minor gaps like error handling or behavior for missing UUIDs are not critical, but a slightly more detailed description could have noted that closing is a no-op for non-running browsers, though that is implied by idempotentHint.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema fully describes the single parameter 'profile_uuids' as 'Profile UUIDs to close', and the description echoes 'by profile UUID'. No additional semantic value is added beyond what the schema already provides, 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.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action (close), the resource (running browsers), and the identifying key (profile UUID). It effectively distinguishes this from siblings like open_browser and list_running_browsers by specifying both the operation and its scope.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The phrase 'running browsers' implies that this tool is for browsers already open, and that one might first use list_running_browsers to get UUIDs. However, the description does not explicitly mention when to use this tool versus alternatives, nor does it note any exclusions or prerequisites.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_folderCreate folderC
Create a profile folder.
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | Folder name |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations indicate destructiveHint=false and openWorldHint=false, but the description adds no behavioral details beyond the basic 'create' action. It does not mention error behavior on duplicate names, whether parent folders are created, auth requirements, or return values. The description is silent on these important aspects for a mutating tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single short sentence, which is concise but under-specified. It does not waste words, but it also fails to include valuable context that could be added without significant expansion. It is not tautological, but it borders on being too sparse to be informative.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool has no output schema and only one parameter, the description still omits critical information such as return values, error handling, and any constraints on the folder name. It does not explain the purpose of a 'profile folder' within the broader system, leaving the agent with an incomplete understanding of the tool's behavior.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema has 100% coverage for the single parameter 'name' with a generic description 'Folder name'. The tool description does not add any additional semantic meaning to the parameter, so the baseline of 3 applies since the schema carries the burden of parameter documentation.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description 'Create a profile folder' clearly states the verb (create) and resource (profile folder), which distinguishes it from sibling folder operations like update_folder and delete_folder. It is specific enough to convey the core function, though it lacks any additional context about what a profile folder is.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool, any prerequisites, or how it compares to alternatives such as create_profile or list_folders. There is no mention of checking for existing folders or when it should be invoked instead of other create operations.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_profileCreate profileA
Create a browser profile. Only system is required — everything else has sensible defaults and omitted fingerprint fields are auto-generated as a coherent random fingerprint. Bind a proxy via proxy (static = saved proxy from list_proxies; rotating = dynamic residential). Fine-grained fingerprint control goes in advanced. Returns the new profile_uuid.
| Name | Required | Description | Default |
|---|---|---|---|
| note | No | Free-text note | |
| proxy | No | Proxy binding. Omit entirely for no proxy | |
| cookie | No | Cookies as a plaintext JSON string | |
| system | Yes | Operating system the browser fingerprint emulates | |
| advanced | No | Advanced fingerprint overrides, merged into the request body at top level. Same shape as the FlashID Local API create-profile body: each field is {"mode": ..., <values>} (fields: user_agent, webrtc, timezone, geo_location, language, webgl_info, webgl, canvas, audio_context, client_rects, speech_voices, screen, fonts, cpu, ram, media_devices, device_name, mac_address, do_not_track, webgpu). Omitted random/noise fields are auto-generated, so this is rarely needed. Full reference: https://docs.flashid.app | |
| folder_uuid | No | Folder to place the profile in ("0" = root) | |
| profile_name | No | Display name | |
| launch_arguments | No | Custom Chromium launch arguments, one argument per item |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Beyond the annotations (openWorldHint=false, destructiveHint=false), the description discloses that omitted fingerprint fields are auto-generated as a coherent random fingerprint, explains proxy modes (static vs rotating), notes advanced field merging behavior, and states the return value (profile_uuid). This adds meaningful behavioral context.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Four focused sentences, front-loaded with the primary action. Every sentence provides value: defaults, proxy binding, advanced overrides, and return value. No redundancy or fluff.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the complexity (8 parameters, nested objects, no output schema), the description covers the required parameter, defaults, proxy modes, advanced overrides, and return value. It could mention what happens if proxy is omitted entirely, but the schema already handles that. Overall, it is sufficiently complete for a create tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does 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 extra meaning by clarifying that `proxy` static refers to saved proxies from list_proxies and rotating is dynamic residential, and that `advanced` follows the FlashID Local API shape. This goes beyond the schema descriptions.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description opens with 'Create a browser profile,' making the verb and resource explicit. This clearly distinguishes it from sibling tools like update_profile, delete_profile, and get_profile.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explains key usage details ('Only `system` is required', 'Bind a proxy via `proxy`', 'Fine-grained fingerprint control goes in `advanced`') but does not explicitly contrast with alternatives or state when not to use. The usage context is implied rather than explicitly differentiated from update_profile.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
delete_folderDelete folderCDestructive
Delete a folder.
| Name | Required | Description | Default |
|---|---|---|---|
| folder_uuid | Yes | Folder UUID |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The annotation `destructiveHint: true` already signals destructive behavior, but the description adds no further context. It does not disclose whether the deletion is reversible, whether it affects subfolders, or any permission requirements. Given the sibling 'permanently_delete', this ambiguity is significant.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, concise sentence that is easy to parse and front-loads the primary action. While minimal, it is not wordy and effectively communicates the core purpose.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With only one parameter and no output schema, the description still leaves critical gaps. It does not explain the deletion behavior (soft vs. permanent), recovery options, or how it relates to sibling tools like 'restore_from_trash' and 'permanently_delete'. This is insufficient for a destructive tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema description coverage is 100% (the only parameter `folder_uuid` is described as 'Folder UUID'), so the schema already provides full parameter semantics. The description adds no additional meaning beyond that baseline.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description 'Delete a folder' clearly states the action and resource. However, it does not distinguish this from the sibling 'permanently_delete', which may be a more permanent deletion method. Thus it lacks clear differentiation.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no guidance on when to use this tool versus alternatives like 'permanently_delete' or 'restore_from_trash'. The description does not mention whether the folder is moved to trash, nor any prerequisites or consequences.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
delete_profileDelete profileADestructive
Move a profile to Trash. Recoverable with restore_from_trash.
| Name | Required | Description | Default |
|---|---|---|---|
| profile_uuid | Yes | Profile UUID |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare destructiveHint=true, but the description adds valuable context that this is a soft delete (move to Trash) and that the profile can be recovered with restore_from_trash, exceeding the basic destructive flag.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two short sentences that front-load the action and recovery note. Every word earns its place with no unnecessary elaboration.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple single-parameter destructive operation, the description effectively conveys the key behavior (soft delete) and the recovery path. No output schema exists, and annotations cover the safety profile, so the description is sufficiently complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema covers the only parameter profile_uuid with a basic description, so the baseline is 3. The description does not add any additional parameter meaning or usage details.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb 'Move' with the resource 'profile' and destination 'Trash', clearly distinguishing it from sibling tools like permanently_delete (permanent deletion) and restore_from_trash (the reverse operation).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It provides clear context that the operation is recoverable via restore_from_trash, implying a non-permanent delete. However, it does not explicitly mention the sibling permanently_delete as the alternative for permanent deletion, so it lacks an explicit exclusion.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
delete_proxyDelete proxyADestructive
Delete a saved proxy. This cannot be undone.
| Name | Required | Description | Default |
|---|---|---|---|
| proxy_uuid | Yes | Proxy uuid (from list_proxies) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The annotation already indicates destructiveHint=true, but the description adds a specific irreversible trait ('This cannot be undone'), which is more granular than the annotation. This provides useful behavioral context beyond what structured data offers.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is exceptionally concise, consisting of two short sentences. It front-loads the action and purpose, with every word earning its place and zero redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple one-parameter delete tool with a destructive annotation, the description is largely complete. It states the action, the irreversibility, and the target. It could mention return values or impacts on running browsers, but these are not essential given the tool's simplicity.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema fully documents the sole parameter with 100% coverage, including its source ('from list_proxies'). The description adds no additional parameter meaning, so 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.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('Delete') and the target resource ('a saved proxy'), distinguishing it from sibling tools like add_proxies, update_proxy, and list_proxies. It is specific and unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives, nor does it mention any prerequisites or conditions. Usage is only implied by the delete verb, with no explicit context or exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
generate_random_fingerprintGenerate random fingerprintARead-only
Generate a coherent set of random fingerprint values for an OS. Rarely needed — create_profile auto-generates omitted fingerprint fields already. Useful to preview values or fill advanced manually.
| Name | Required | Description | Default |
|---|---|---|---|
| system_os | Yes | ||
| required_types | No | Limit generation to these fields; omit for a full set | |
| system_version | Yes | Full OS string, e.g. "Windows 11" or "Mac OS X 15" | |
| gpu_adapterinfo_vendor | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, so the read-only nature is covered. The description adds that values are 'coherent' and that it's for previewing, but does not disclose output structure or other behavioral details like whether required_types affects generation beyond the schema.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, front-loaded with the main purpose, and every sentence adds value: the first states the action, the second gives usage context and alternative. No unnecessary words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool is simple (read-only random generation) and the description covers purpose, usage, and alternative. However, without an output schema, the description could have explicitly described the return format, but it hints at 'preview values' and 'fill advanced manually', which is sufficient for an agent to understand the result. It lacks any mention of required_types, but that is a parameter semantics concern rather than overall completeness.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema covers only 50% of parameters with descriptions (system_version and required_types have descriptions, system_os and gpu_adapterinfo_vendor do not). The description does not add any parameter-level meaning, only referencing 'an OS' broadly. It does not explain gpu_adapterinfo_vendor or how required_types works, so it fails to compensate for incomplete schema coverage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states 'Generate a coherent set of random fingerprint values for an OS' with a specific verb and resource, and explicitly distinguishes it from create_profile by noting that create_profile auto-generates omitted fingerprint fields.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It explicitly says 'Rarely needed' and names create_profile as the alternative that auto-generates these fields, and states it is 'Useful to preview values or fill advanced manually,' giving 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.
get_fingerprint_optionsGet fingerprint optionsARead-only
List the selectable values for a fingerprint field (for manual fingerprint configuration). For type=webgl both system and gpu_vendor are required.
| Name | Required | Description | Default |
|---|---|---|---|
| type | Yes | ||
| system | No | Optional for fonts; required for webgl | |
| gpu_vendor | No | Required for webgl. Windows: intel | amd | nvidia — Mac OS X: intel | apple |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and openWorldHint=false, so the description need not repeat safety. It adds the constraint that both 'system' and 'gpu_vendor' are required for type=webgl, but it does not describe the output format or error behavior, leaving some gaps.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences, front-loaded with the purpose, and every sentence adds value. The conditional note is concise and directly relevant.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a read-only list tool with strong annotations, the description provides the core purpose and the main constraint (webgl). It does not describe the return structure, but the simple 'list' nature implies an array of values. Overall it is fairly complete for the tool's complexity.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 67% (system and gpu_vendor have descriptions). The description reinforces the webgl dependency that is already present in the schema, and it adds minimal meaning for 'type' by indicating it selects the fingerprint field. It adds little beyond what the schema already provides.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses the specific verb 'List' and clearly identifies the resource: 'selectable values for a fingerprint field'. It also distinguishes the tool from sibling 'generate_random_fingerprint' by noting its use for 'manual fingerprint configuration'.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides clear context for when to use the tool ('for manual fingerprint configuration') and a specific conditional instruction for type=webgl. It does not explicitly name alternatives or exclusion cases, but the context is sufficient.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_profileGet profile detailARead-only
Get the full configuration of a profile, including its fingerprint (browser_config), proxy and folder. cookie_data is omitted unless include_cookie is true (cookies can be very large).
| Name | Required | Description | Default |
|---|---|---|---|
| profile_uuid | Yes | Profile UUID | |
| include_cookie | No | Include cookie_data in the result (default false) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, and the description is consistent. It adds valuable behavioral context by disclosing that cookie_data is omitted by default due to size, and that include_cookie controls this. This goes beyond the safety annotation and explains a key output trait.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, no waste. The first sentence front-loads the core purpose and key included elements; the second adds an important conditional detail. Perfectly sized.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With only 2 parameters, no output schema, and read-only annotations, this description fully covers what the tool returns and the key conditional behavior. No missing context for an agent to use it correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% with both parameters documented. The description enriches include_cookie by explaining why cookies are omitted (large size) and clarifies profile_uuid's role in fetching a profile's full config, providing rationale beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states 'Get the full configuration of a profile' with specific resources (fingerprint, proxy, folder), distinguishing it from sibling tools like list_profiles and get_fingerprint_options. It also explicitly notes the cookie omission behavior, which adds clarity.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies this tool is for retrieving full profile configuration, while list_profiles likely provides summaries. It does not explicitly state when to use alternatives, but the context of 'full configuration' and the cookie omission note gives clear usage guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_foldersList foldersCRead-only
List profile folders.
| Name | Required | Description | Default |
|---|---|---|---|
| page | No | Page number, starts at 1 | |
| keyword | No | ||
| page_size | No | Items per page |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Beyond the annotations (readOnlyHint=true), the description adds no behavioral context. It does not mention pagination, filtering behavior, or the response format, which is a significant omission for a list tool with optional parameters.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, clear sentence with no wasted words. It is appropriately sized for a simple list operation, and the structure is front-loaded with the core purpose.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool has three optional parameters and no output schema, the description is too sparse to be complete. It does not explain pagination, keyword filtering, or what the response contains, leaving the agent to infer critical behavior.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The description provides no information about the parameters. Since schema coverage is only 67% (keyword lacks a description), the description does not compensate for the gap, leaving the agent without guidance on the keyword parameter's meaning or usage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description 'List profile folders' uses a clear verb and resource, distinguishing it from sibling tools like list_profiles or list_trash. However, it is extremely terse and provides no additional context about the scope or nature of the listing.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives no guidance on when to use this tool versus alternatives, nor does it mention any prerequisites, exclusions, or related tools. This is a clear gap in usage context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_profilesList profilesARead-only
List browser profiles (environments) with pagination and search. Note: running state is not part of this list — use list_running_browsers for that.
| Name | Required | Description | Default |
|---|---|---|---|
| page | No | Page number, starts at 1 | |
| keyword | No | Search keyword (name / note) | |
| sort_by | No | ||
| page_size | No | Items per page | |
| sort_order | No | ||
| folder_uuid | No | Filter by folder UUID, or a built-in id: "all" | "starred" |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, so the safety profile is covered. The description adds useful behavioral context beyond the annotations by noting that running state is omitted and that pagination/search are supported. However, it doesn't describe the response envelope or any rate limiting, which would be additional value.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, front-loaded with the core purpose and a key differentiator. No wasted words; every phrase earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a list operation with no output schema, the description clearly states the resource, the filtering/search capabilities, and the important exclusion of running state. It could have mentioned the structure of the paginated response (e.g., whether it returns a total count), but the core behavior is adequately covered given the annotations.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 67%, with page, keyword, page_size, and folder_uuid already described in the schema. The description adds the context of pagination and search but does not clarify the meaning of sort_by or sort_order, which lack schema descriptions. Since the description doesn't compensate for the undocumented parameters, it only meets the baseline.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states it lists browser profiles with pagination and search, immediately distinguishing it from list_running_browsers by explicitly noting running state is excluded. The verb 'list' and resource 'browser profiles' are specific and unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly tells the agent when not to use this tool: 'running state is not part of this list — use list_running_browsers for that.' This names the alternative tool directly and provides clear exclusion criteria, making usage guidance strong.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_proxiesList proxiesARead-only
List saved proxies. Use the returned proxy_uuid to bind a proxy to a profile (create_profile / quick_update_profile with proxy.mode=static).
| Name | Required | Description | Default |
|---|---|---|---|
| tab | No | Filter by source (default all) | |
| page | No | Page number, starts at 1 | |
| keyword | No | ||
| page_size | No | Items per page |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, so the description doesn't need to repeat safety. It adds value by noting the returned proxy_uuid is intended for binding, which gives insight into the output structure. No contradictory behavior is disclosed.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences with no unnecessary words. The first sentence states the action, and the second gives a practical follow-up. Well-structured and front-loaded.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
This is a simple read-only list tool with schema and annotations covering most context. The description implies the response contains proxy_uuid, which is enough to complete the binding workflow. It could be slightly more explicit about the response format, but given the simplicity, it is sufficiently complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 75%, which is moderate. The description doesn't delve into parameter meanings but the schema already documents most properties (tab, page, page_size). The keyword parameter lacks a schema description, yet the description doesn't compensate. The main focus is on output usage rather than input parameters, so 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.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states 'List saved proxies' with a specific verb and resource, and distinguishes itself from sibling proxy tools (add_proxies, delete_proxy, check_proxy, list_proxy_regions). It also provides a concrete next step (using proxy_uuid for binding), which clarifies the tool's role in the workflow.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly says to use the returned proxy_uuid to bind a proxy to a profile via create_profile or quick_update_profile, giving a clear context for when this tool is useful. It does not mention exclusions or alternatives, but the primary use case is well articulated.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_proxy_regionsList rotating-proxy regionsARead-only
Regions for rotating (dynamic residential) proxies. Without arguments returns countries (name + code); pass country to get its states/cities. In create_profile / quick_update_profile use the country code as proxy.region and the state/city value as proxy.state / proxy.city.
| Name | Required | Description | Default |
|---|---|---|---|
| country | No | Country code or name; when set, returns its state/city subtree |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate readOnlyHint=true, so the safety profile is clear. The description adds meaningful behavioral detail: without arguments it returns country codes/names, and with `country` it returns the state/city subtree. It also clarifies the distinction between `code` (for region) and `value` (for state/city), which is helpful for callers.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences, with the first sentence stating the core functionality and the second providing usage guidance. It is front-loaded, contains no fluff, and every sentence contributes value.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple list tool with one optional parameter and no output schema, the description fully explains the behavior in both argument scenarios, the structure of output data, and how to apply the results in profile creation/update. This is complete for its complexity, and the presence of annotations further reduces the need for additional context.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema already provides 100% coverage for the single `country` parameter, describing its type and effect. The description adds integration-oriented semantics by explaining how to use the returned fields in other tools, which goes beyond the schema's basic parameter description and enriches understanding of the parameter's role.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly identifies the tool's purpose: returning proxy regions for rotating residential proxies. It specifies the exact output types (countries, states/cities) and how the optional `country` parameter changes the results, making it distinct from sibling tools like list_proxies.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly explains when to use the tool: when configuring proxies in create_profile or quick_update_profile, and how to map the returned `code` and `value` fields to proxy.region, proxy.state, and proxy.city. This gives concrete, actionable usage context beyond just listing regions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_running_browsersList running browsersARead-only
List currently running browsers with their automation endpoints (ws.puppeteer / ws.selenium / debug_port).
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, so the read-only nature is known. The description adds the specific output fields (ws.puppeteer, ws.selenium, debug_port), which is useful context that goes beyond the raw annotation. It does not promise additional behavior, 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, well-structured sentence that is front-loaded with the action ('List currently running browsers') and immediately provides the key output details. No filler words; every part earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a no-parameter, read-only list tool with no output schema, this description is fully sufficient. It states what is listed and the important fields returned. There are no hidden parameters, side effects, or complex preconditions, so no additional context is needed.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool has zero parameters, so schema coverage is 100% and there is nothing to document. The description does not need to explain parameter syntax, and the baseline of 4 applies since no parameters exist.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's function: 'List currently running browsers' and specifies exactly what information is returned (automation endpoints ws.puppeteer / ws.selenium / debug_port). It uses a specific verb and resource, and is distinct from sibling tools like list_profiles or open_browser.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives a clear context for when to use this tool: when you need to see which browsers are currently running and their automation endpoints. It does not explicitly name alternatives or exclusions, but the purpose is unambiguous enough to guide selection. Sibling tools like list_profiles serve a different function, implying this is the go-to for running browser instances.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_trashList trashARead-only
List profiles currently in the trash (recycle bin).
| Name | Required | Description | Default |
|---|---|---|---|
| page | No | Page number, starts at 1 | |
| keyword | No | ||
| page_size | No | Items per page |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, so the read-only safety is known. The description adds the trash scope but does not disclose pagination behavior or return format. 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single clear sentence with no redundant words. It front-loads the action and subject effectively.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool is simple, but with optional pagination and keyword filtering parameters and no output schema, the description does not fully clarify how these parameters affect results or what the response structure is. It is minimally adequate.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema descriptions cover page and page_size, but keyword has no description. The tool description adds no parameter semantics, leaving the purpose of keyword ambiguous. Schema coverage is 67%, not high enough to fully compensate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description 'List profiles currently in the trash (recycle bin)' clearly states the action (list) and the resource (trash profiles). It distinguishes from sibling tool list_profiles by explicitly scoping to trash.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies this tool is for viewing trashed profiles but does not explicitly state when to use it versus list_profiles or other trash-related tools like restore_from_trash. Usage context is implied by the phrase 'in the trash'.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
open_browserOpen browserA
Launch the browser for a profile and wait until it is ready. Returns automation endpoints: ws.puppeteer (CDP WebSocket — connect Playwright/Puppeteer or a browser-automation MCP to drive pages), ws.selenium (host:port) and debug_port. Usually takes a few seconds; the first launch can take minutes while the browser kernel downloads.
| Name | Required | Description | Default |
|---|---|---|---|
| profile_uuid | Yes | Profile UUID to open |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare openWorldHint=false and destructiveHint=false, but the description adds behavioral details beyond that: it waits until ready, returns specific endpoint formats, and notes the possibility of a long first launch due to kernel download. This goes beyond the structured data.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is three sentences long, front-loads the core action, and each sentence contributes essential information: the action, the return endpoints, and timing behavior. There is no redundant or wasteful text.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool has no output schema, but the description explicitly details the return values (ws.puppeteer, ws.selenium, debug_port) and the wait behavior. It gives an agent everything needed to invoke the tool and understand what to expect, especially given the single parameter and available annotations.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema already provides a full description for the single parameter (profile_uuid: 'Profile UUID to open'), giving 100% schema coverage. The tool description does not add further parameter-specific semantics, 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.
Does the description clearly state what the tool does and how it differs from similar tools?
The description begins with 'Launch the browser for a profile and wait until it is ready,' a specific verb+resource statement that clearly distinguishes this from sibling tools like close_browser or list_running_browsers. The mention of returned automation endpoints further nails down the tool's role.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides clear context about when the tool is used (to launch a browser and get automation endpoints) and includes practical timing information (first launch may take minutes). It does not, however, explicitly state alternatives or exclusions, so it misses the top bar for explicit when/when-not guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
permanently_deletePermanently deleteADestructive
PERMANENTLY delete profiles from trash — specific ones via profile_uuids, or empty the whole trash via all=true. This cannot be undone. Only affects profiles already in trash.
| Name | Required | Description | Default |
|---|---|---|---|
| all | No | true = apply to every profile in trash | |
| profile_uuids | No | Specific profile UUIDs |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already set destructiveHint=true, but the description adds crucial context: 'This cannot be undone' and 'Only affects profiles already in trash'. This goes beyond the annotation by warning of irreversibility and preventing misuse outside the trash scope, providing robust behavioral transparency.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences with no filler. The first sentence front-loads the action and scope, and the second adds irreversibility and a scope constraint. Every word earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a tool with only two optional parameters and no output schema, the description covers all essential aspects: purpose, modes, irreversibility, and scope. A minor gap is the lack of explicit behavior when both all=true and profile_uuids are provided, but the implied exclusivity mitigates this.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does 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 semantic value by explaining the two modes (specific via profile_uuids, bulk via all=true) and implying they are alternatives, which the schema does not enforce. This clarifies the relationship between the two parameters beyond their raw descriptions.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description starts with an emphatic 'PERMANENTLY delete profiles from trash', which clearly states the action, resource, and scope. It also distinguishes from sibling tools like delete_profile (which likely moves to trash) and restore_from_trash by emphasizing irreversibility and the trash-only scope.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies when to use this tool: when you want to permanently erase profiles already in trash, as opposed to initial deletion or restoration. It provides clear prerequisites ('Only affects profiles already in trash') and two usage modes, but does not explicitly name alternatives or exclusions beyond that.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
quick_update_profileQuick update profileA
Lightweight partial update of non-fingerprint info: name, note, folder and/or proxy. Send only the fields to change. folder_uuid "0" moves the profile out of its folder (root).
| Name | Required | Description | Default |
|---|---|---|---|
| note | No | ||
| proxy | No | Proxy binding. Omit entirely for no proxy | |
| folder_uuid | No | "0" = move to root (no folder) | |
| profile_name | No | ||
| profile_uuid | Yes | Profile UUID |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations are minimal (openWorldHint=false, destructiveHint=false). The description adds behavioral context beyond annotations: it explains partial update semantics ('Send only the fields to change') and the special root-folder behavior ('folder_uuid 0 moves the profile out of its folder'). This is helpful and not covered by annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences, with the first sentence announcing the purpose and scope, and the second providing a key usage instruction and special value. Every word earns its place; no filler or redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a tool with 5 params, a nested proxy object, and no output schema, the description covers the essential purpose, usage, and a special case. It does not mention what happens after update (e.g., response shape) or explicitly point to update_profile for fingerprint changes, but the 'non-fingerprint' wording implicitly covers that. A short pointer to the full update tool would make it more complete, but it is sufficient for correct invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 60%, with descriptions for folder_uuid, proxy, and profile_uuid. The description compounds this by clarifying that only fields to be changed need to be sent, and by listing the editable fields. It also reiterates the folder_uuid special value. This adds meaning beyond the schema alone, especially the partial-update semantics.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states 'Lightweight partial update of non-fingerprint info: name, note, folder and/or proxy.' It uses a specific verb ('update') with a clear scope (non-fingerprint fields) and lists the fields. This distinguishes it from the sibling 'update_profile' by limiting to non-fingerprint fields.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides clear context: use this for partial updates, sending only the fields to change. It implies 'when not to use' by restricting to non-fingerprint info, but it does not explicitly name the alternative tool (update_profile) or provide explicit exclusions. This is clear context but lacks explicit alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
restore_from_trashRestore from trashA
Restore profiles from trash — specific ones via profile_uuids, or everything via all=true.
| Name | Required | Description | Default |
|---|---|---|---|
| all | No | true = apply to every profile in trash | |
| profile_uuids | No | Specific profile UUIDs |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description discloses the core behavior (restore) and the two invocation modes, but it does not address edge cases like providing both profile_uuids and all=true simultaneously, or what happens if the specified profiles are not in trash. The annotations are minimal, so the description carries some burden but fails to cover these behavioral nuances.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence, front-loaded with the action, and efficiently conveys both invocation modes without any fluff or redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a tool with only two optional parameters and no output schema, the description covers the essential purpose and modes. However, it misses the potential conflict when both parameters are supplied and does not hint at any error conditions or prerequisites, leaving a small gap in completeness.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does 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 rephrases the parameter meanings ('specific ones via profile_uuids' and 'everything via all=true') but does not add new semantics such as exclusivity or format constraints beyond what the schema already provides.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action (restore) and resource (profiles from trash), and differentiates it from sibling tools like permanently_delete and list_trash by specifying the two modes of operation (specific UUIDs or all).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides clear context for when to use the tool (to restore profiles from trash) and outlines the choice between specific and bulk restore. However, it does not explicitly mention alternatives or exclusions, such as using list_trash to inspect trash first or avoiding this tool for permanent deletion.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
star_profileToggle starA
Toggle the star (favorite) flag of a profile. Returns the new stars_status (1 = starred).
| Name | Required | Description | Default |
|---|---|---|---|
| profile_uuid | Yes | Profile UUID |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description discloses that the tool modifies the star flag (a state change) and explicitly states the return value ('Returns the new stars_status'), which goes beyond the annotations that only provide openWorldHint=false and destructiveHint=false. This is useful behavioral context.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, concise sentence that front-loads the action and result. There is no filler or redundant information, making it highly efficient.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple tool with one parameter and no output schema, the description adequately covers the core behavior, the return value, and the star status meaning. No critical information is missing for an agent to use it correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema already fully describes the single parameter (profile_uuid) with high coverage (100%). The tool description does not add additional semantics beyond what the schema provides, so 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.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('Toggle the star flag') and the resource ('profile'), with the additional detail of returning the new stars_status. This distinguishes it from sibling tools like update_profile or quick_update_profile, which handle general profile updates.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The usage context is implied by the name and description: use this tool when you want to star/unstar a profile. However, there is no explicit guidance on when to prefer this over alternative update methods, nor any mention of exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
update_folderRename folderBIdempotent
Rename a folder.
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | New folder name | |
| folder_uuid | Yes | Folder UUID |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description adds no behavioral context beyond the annotations. Annotations already declare idempotentHint=true and destructiveHint=false, but the description does not provide any additional side effects, error conditions, or practical caveats. It merely restates the action.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, concise sentence that directly states the action. Every word earns its place, with no redundant fluff. It is appropriately sized for a simple tool.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's simplicity (2 params, 100% schema coverage, no output schema) and existing annotations, the description is sufficient for an agent to understand its purpose and invoke it correctly. The context is minimal but complete for a straightforward rename operation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% with both parameters (name and folder_uuid) having descriptions. The tool description adds no extra parameter information, so the baseline of 3 applies as the schema does the heavy lifting.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description 'Rename a folder.' uses a specific verb ('Rename') and resource ('folder'), clearly distinguishing it from sibling tools like create_folder and delete_folder. It unambiguously states the tool's core function.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives, no prerequisites, and no exclusions. While the name implies usage for renaming folders, there is no explicit context or comparison with sibling tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
update_profileUpdate profileA
Partial update of a profile — send only the fields to change; omitted fields keep their current value (fingerprint, proxy, name, everything). For just name / note / folder / proxy prefer quick_update_profile.
| Name | Required | Description | Default |
|---|---|---|---|
| note | No | Free-text note | |
| proxy | No | Proxy binding. Omit entirely for no proxy | |
| cookie | No | Cookies as a plaintext JSON string | |
| system | No | Operating system the browser fingerprint emulates | |
| advanced | No | Advanced fingerprint overrides, merged into the request body at top level. Same shape as the FlashID Local API create-profile body: each field is {"mode": ..., <values>} (fields: user_agent, webrtc, timezone, geo_location, language, webgl_info, webgl, canvas, audio_context, client_rects, speech_voices, screen, fonts, cpu, ram, media_devices, device_name, mac_address, do_not_track, webgpu). Omitted random/noise fields are auto-generated, so this is rarely needed. Full reference: https://docs.flashid.app | |
| folder_uuid | No | Folder to place the profile in ("0" = root) | |
| profile_name | No | Display name | |
| profile_uuid | Yes | Profile UUID | |
| launch_arguments | No | Custom Chromium launch arguments, one argument per item |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate non-destructive and non-open-world, so the bar is lower. The description adds valuable partial-update semantics (omitted fields keep current value), which is critical behavioral context beyond annotations. 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
Extremely concise: two sentences, front-loaded with key behavior and a pointer to a simpler sibling. Every word earns its place with no redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description explains the update semantics, references quick_update_profile, and points to external docs for advanced overrides. Given the rich schema and annotations, it is sufficiently complete, though it doesn't describe the response format.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so it carries the parameter documentation burden. The description adds the partial-update behavior and references the advanced field structure, but does not add much beyond the schema's own descriptions.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Clearly states it is a partial update of a profile and lists examples of fields, distinguishing it from the sibling quick_update_profile. The verb 'update' and resource 'profile' are specific and unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly instructs to prefer quick_update_profile for simple field changes (name/note/folder/proxy), implying this tool is for more complex or comprehensive updates. This provides clear when-to-use vs alternative guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
update_proxyUpdate proxyA
Partial update of a saved proxy — send only the fields to change.
| Name | Required | Description | Default |
|---|---|---|---|
| remark | No | ||
| ipchecker | No | ||
| proxy_host | No | ||
| proxy_pass | No | ||
| proxy_port | No | Proxy port (number or numeric string) | |
| proxy_type | No | ||
| proxy_user | No | ||
| proxy_uuid | Yes | Proxy uuid (from list_proxies) | |
| refresh_url | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description discloses the partial-update behavior, which is key context. Annotations already indicate non-destructive behavior (destructiveHint=false) and a closed schema (openWorldHint=false). However, it does not mention potential side effects, error handling, or requirements beyond the schema, so transparency is moderate.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, concise sentence with no redundant wording. It front-loads the core action and the critical usage detail, making it highly efficient and easy to parse.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description covers the essential purpose and partial-update semantics, and annotations provide safety information. However, with no output schema and no mention of return values or error scenarios, it is slightly under-specified for a tool with 9 parameters, though adequate for a straightforward update operation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With schema description coverage at only 22%, the description helps by clarifying that only provided fields are updated and the rest remain unchanged. It does not explain individual parameter meanings, but field names are largely self-explanatory, and the partial-update note adds value beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('partial update') and the resource ('saved proxy'), and the scope ('send only the fields to change') differentiates it from full replacement or deletion. It is unambiguous and distinct from sibling proxy tools like delete_proxy or add_proxies.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The phrase 'send only the fields to change' provides clear guidance that the tool is used for modifying an existing proxy without sending the entire object. It implies usage for updates to a saved proxy, though it does not explicitly state alternatives or exclusions, making it clear but slightly incomplete.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections. Dates show when Glama detected each change.
26 tool updates
v0.1.1- First observed
add_proxies - First observed
check_connection - First observed
check_proxy - First observed
close_browser - First observed
create_folder - First observed
create_profile - First observed
delete_folder - First observed
delete_profile - First observed
delete_proxy - First observed
generate_random_fingerprint - First observed
get_fingerprint_options - First observed
get_profile - First observed
list_folders - First observed
list_profiles - First observed
list_proxies - First observed
list_proxy_regions - First observed
list_running_browsers - First observed
list_trash - First observed
open_browser - First observed
permanently_delete - First observed
quick_update_profile - First observed
restore_from_trash - First observed
star_profile - First observed
update_folder - First observed
update_profile - First observed
update_proxy
TDQS
Most tools target distinct resources/actions, but update_profile and quick_update_profile overlap somewhat, as do delete_profile and permanently_delete. Descriptions clarify the differences, but an agent might occasionally confuse them.
All tools use snake_case with a consistent verb_noun pattern (e.g., list_profiles, create_profile, delete_proxy). Even multi-word actions like quick_update_profile and list_running_browsers follow the same convention.
With 26 tools, the count exceeds the 25-tool threshold for 'too many' per the rubric. While the breadth covers profiles, proxies, folders, and browsers, the sheer number may feel heavy for an agent to navigate.
The tool surface provides full lifecycle coverage for profiles (create, read, update, delete, restore, permanent delete, star), proxies (CRUD plus testing and regions), folders, and browser management (open/close/list). No obvious gaps or dead ends.
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Connectors
MCP server for AI agents to plan, verify, and deploy Cloudflare-native apps.
MCP server for building and testing AI agents with multi-model experimentation and insights.
MCP server for secureFlows: token-free URL builders and integration-linting tools for AI agents.
MCP server enabling AI agents to manage Bitrix24 features via standardized protocol
Related MCP Servers
- AlicenseNot gradedqualityBmaintenanceAn MCP Server that enables AI assistants to interact with your local browsers.3,60754MIT
- AlicenseCqualityDmaintenanceMCP server for HotLogin Local API that enables AI agents to manage browser environments, groups, and proxies, and perform browser automation tasks like page interaction and cookie management through a standardized interface.2317MIT
- AlicenseAqualityDmaintenanceMCP server for AI browser automation with tools for navigation, actions, data extraction, and scripting, supporting local and cloud execution.14512Apache 2.0

@meshbrow/mcp-serverofficial
AlicenseNot gradedqualityBmaintenanceMCP server for Meshbrow that gives AI agents full browser automation capabilities with stealth anti-detection, enabling natural language control of browser sessions, data extraction, and multi-browser fleets.MIT
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/FlashID-Official/flashid-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server