@yocoolab/mcp-server
Provides tools for creating pull requests that close out feedback threads, using a GitHub personal access token with repo scope.
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., "@@yocoolab/mcp-serverlist open design feedback threads"
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.
@yocoolab/mcp-server
MCP (Model Context Protocol) server that exposes Yocoolab feedback threads, design selections, and activity events as tools for Claude Code and other MCP-compatible clients.
With this installed, your AI coding assistant can:
List and triage open design feedback threads on your repo
Pull rich context for a thread (selection, screenshot, conversation, files touched)
Reply to designers and mark threads as addressed
Open PRs that close out feedback threads
Inspect element context and selection history from the Yocoolab Chrome extension
Read activity summaries, AI conversations, and Pendo product analytics
Install
One command:
npx -y @yocoolab/mcp-server@2 setupThe setup wizard auto-detects your installed AI agents (Claude Code, Cursor, Cline, Roo Code, Windsurf) and writes the correct MCP config for each. Restart your agent and the yocoolab server appears with all tools available.
initis kept as an alias forsetupfor backwards compatibility with v1.0.x install instructions.
If you'd rather configure manually, the equivalent ~/.mcp.json looks like:
{
"mcpServers": {
"yocoolab": {
"command": "npx",
"args": ["-y", "@yocoolab/mcp-server@2"],
"env": {
"YOCOOLAB_API_URL": "https://app.yocoolab.com",
"YOCOOLAB_TOKEN": "<your-yocoolab-jwt>",
"GITHUB_TOKEN": "<your-github-pat>",
"YOCOOLAB_BRIDGE_PORT": "9800",
"YOCOOLAB_BRIDGE_WORKSPACE": "/absolute/path/to/your/workspace"
}
}
}
}The @2 version pin keeps you on the v2 major line — you'll receive bug fixes and new features automatically, but a future v3 with breaking changes won't break your setup. (Pin to @1 if you need Node 18 support — v1.x will receive security patches for 90 days after v2.0.)
Related MCP server: Agent to Figma MCP
Requirements
Node.js 20 or newer. We test on Node 20 and 22 in CI. We support whichever Node.js versions are currently in Active LTS or Maintenance LTS status, and drop versions within 30 days of their EOL. Node 18 was dropped in v2.0.0 (EOL April 2025).
A Yocoolab account and JWT token — get yours from the Yocoolab Chrome extension settings, or via your account at app.yocoolab.com.
A GitHub personal access token with
reposcope, if you want to use the PR-creation tools (create_pr_for_thread). The token is auto-detected if you have the GitHub CLI installed and authenticated (gh auth login). NoGITHUB_TOKENenv var needed in that case. Otherwise, create one at github.com/settings/tokens/new?scopes=repo.
Configuration
Env var | Required | Default | Description |
| no | — | Your Yocoolab JWT (from the Chrome extension). When unset, thread feedback tools are disabled but bridge / companion / activity tools still work. |
| no |
| Yocoolab API base URL |
| only for PR tools | — | GitHub PAT with |
| no |
| Local port for the HTTP bridge to the Chrome extension |
| no |
| Absolute path to your project workspace, used to resolve file references in selections |
| no |
| Display name shown in the Chrome extension's agent picker |
| no |
| Agent type identifier ( |
CLI
yocoolab-mcp Run the MCP server (used by your agent via .mcp.json)
yocoolab-mcp setup Interactive setup — auto-detects agents and writes their configs
yocoolab-mcp init Alias for `setup` (backwards compatible with v1.0.x)
yocoolab-mcp --help Show this helpThe mcp-server command is a synonym for yocoolab-mcp. Either works.
Tools
The server exposes tools across several categories:
Threads —
list_open_threads,get_thread_context,add_thread_message,mark_thread_addressed,create_pr_for_threadSelection / Bridge —
get_latest_selection,get_selection_history,get_element_context,find_source_for_selection,ai_analyze_pageActivity —
get_recent_events,get_activity_summary,get_files_touched,get_companion_messages,reply_to_companionAI —
get_ai_conversationsDeployment —
get_deployment_previewPendo (optional) —
pendo_list_guides,pendo_page_analytics,pendo_feature_usage,pendo_track_event
For full tool descriptions and parameters, your MCP client will list them after the server starts.
Troubleshooting
yocoolab-mcp: command not found — make sure you're on v1.0.1 or newer. Run npx -y @yocoolab/mcp-server@latest setup to get the current release.
[yocoolab] Warning: YOCOOLAB_TOKEN not set — thread feedback tools are disabled without a token, but bridge / companion / activity tools still work. To enable everything, run yocoolab-mcp setup to (re)generate the config with your JWT.
Tools don't appear in your agent after install — restart your agent completely (quit & reopen). MCP servers load at startup.
Port 9800 is already in use — another instance of the MCP server is running, or another app has the port. Set YOCOOLAB_BRIDGE_PORT to a different value (e.g. 9801) in your .mcp.json.
Verbose diagnostic logs — set DEBUG=yocoolab:* in your env block. All diagnostic output goes to stderr (so it doesn't interfere with the MCP stdio protocol on stdout).
PR creation says "GitHub token not configured" — the create_pr_for_thread tool needs a GitHub token. Two ways to fix:
Auto-detect (easiest): install the GitHub CLI and run
gh auth login. The server picks up the token automatically.Manual: create a personal access token with
reposcope and addGITHUB_TOKEN: "ghp_..."to your MCP config'senvblock. If your config has a placeholder value like<your GitHub PAT>, the server detects it and shows a helpful message instead of crashing with a 401.
Support
Documentation: this README, plus inline tool descriptions visible in your MCP client
Bug reports: github.com/Yocoolab/mcp-server/issues (use the bug template)
Security issues: see SECURITY.md — do not open a public issue
Other questions: support@yocoolab.com
Development
git clone https://github.com/Yocoolab/mcp-server.git
cd mcp-server
npm install
npm run build # compile TypeScript to dist/
npm test # run the vitest suite
npm run dev # tsc --watchSee CONTRIBUTING.md for the full contributor workflow.
Security & supply chain
Released with npm provenance — every published version is cryptographically signed by GitHub Actions OIDC, traceable back to the exact commit and workflow run.
Each release ships with a CycloneDX SBOM attached to the GitHub Release.
We run
npm audit signaturesand CodeQL static analysis in CI on every PR.See SECURITY.md for vulnerability reporting.
License
Apache 2.0 — © 2026 Yocoolab
Available Tools
10 toolsfind_source_for_selectionA
Searches the workspace for source files that likely define or render the selected UI element. Returns ranked candidates with file paths, line ranges, confidence scores, and match reasons. Can work with live Chrome selections or stored thread element_context.
| Name | Required | Description | Default |
|---|---|---|---|
| correlationId | No | The correlationId of a specific selection. If omitted, uses the latest selection. | |
| thread_id | No | A Yocoolab thread ID to use stored element_context instead of a live selection. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries full burden. It discloses that the tool returns ranked candidates with confidence scores and can work with two input types. It does not cover authorization, rate limits, or error behavior, but the core behavior is well explained.
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 purpose and output, then input modes. Every sentence adds value with no waste. Ideal conciseness.
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 2 optional parameters and no output schema, the description is quite complete. It explains purpose, output, and parameter usage. Minor gaps: no mention of behavior when no selection or invalid thread_id, but overall 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?
Schema coverage is 100%, but the description adds meaningful context: correlationId defaults to latest selection, thread_id switches to stored context. This goes beyond the schema descriptions and helps the agent understand the fallback behavior.
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 purpose: searching for source files that define or render a selected UI element. It specifies the output (ranked candidates with file paths, line ranges, confidence scores, match reasons) and distinguishes from siblings by mentioning two modes (live selection or stored context).
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 on when to use the tool (for finding source definitions) and explains the two input modes. It does not explicitly state when not to use or compare with alternatives, but the sibling list implies its specific role.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_activity_summaryA
Get a high-level summary of Claude Code activity: total events, active sessions, tool usage breakdown, files touched, and error count.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden. It discloses the tool returns a summary with specific fields (events, sessions, tool usage, files, errors). As a read-only 'get' operation, no destructive side effects are expected, and the description is transparent about the output contents.
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 that immediately conveys the tool's purpose and content. Every word earns its place; no redundancy or filler.
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 zero parameters, no output schema, and a clear description of the return contents, the description is fully adequate. The tool is simple and the description covers all necessary information 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?
There are zero parameters, and schema description coverage is 100%. The description adds value by explaining the output fields, which is meaningful context beyond the empty 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 uses a specific verb 'Get' and clearly identifies the resource 'high-level summary of Claude Code activity'. It lists the included components (total events, active sessions, tool usage breakdown, files touched, error count), distinguishing it from siblings like get_recent_events or get_files_touched.
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 is for a high-level overview but does not provide explicit guidance on when to use this tool versus alternatives like get_recent_events or get_dashboard_url. No when-not-to-use or alternative references are given.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_companion_messagesA
Check for new messages from the AI Companion panel in the Chrome extension. Returns pending messages and clears the queue. Each message includes the user text, page context, and optional screenshot/element attachments.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description discloses that the tool returns pending messages AND clears the queue (a destructive read), which is critical behavioral context. No annotations exist, so the description fully carries the burden.
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 concise sentences, front-loaded with the main purpose. Every sentence adds value, 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?
Given no parameters and no output schema, the description covers the core behavior and return content. It could mention error cases or no-message scenario, but overall sufficient for a simple polling 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 tool has zero parameters, and the schema coverage is 100%. With zero parameters, the baseline is 4. The description adds no parameter info because none are needed.
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 checks for new messages from the AI Companion panel, with a specific verb and resource. It distinguishes from sibling tools which handle selections, activity, etc.
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 usage for retrieving new companion messages but lacks explicit guidance on when to use vs. alternatives or when not to use. No exclusions or prerequisites mentioned.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_dashboard_urlA
Get the URL for the real-time activity monitoring dashboard. Open in a browser to see live Claude Code activity, tool usage charts, and session timelines.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries full responsibility for behavioral disclosure. It implies a read-only operation by saying 'Get the URL', but does not explicitly state that there are no side effects, nor does it describe the return format (e.g., plain URL string vs. JSON). This leaves some ambiguity for the agent.
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: the first states the core purpose, the second provides actionable usage guidance. Every word earns its place, with 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 no parameters and no output schema, the description provides adequate context: it explains what the dashboard shows and how to use the URL. However, it does not specify the exact format of the returned URL (e.g., whether it's a raw string or wrapped in JSON), which could be helpful for an agent.
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 no parameters, and the schema coverage is 100% (vacuously). Per the scoring rubric, 0 parameters yields a baseline of 4. The description does not need to add parameter semantics since there are none.
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 purpose: 'Get the URL for the real-time activity monitoring dashboard.' It specifies the resource (URL) and the action (get), and distinguishes itself from sibling tools which return data summaries or perform actions rather than providing a URL.
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 advises to 'Open in a browser to see live Claude Code activity, tool usage charts, and session timelines', which clearly indicates when to use this tool (when a visual dashboard URL is needed). While no explicit exclusions or alternatives are mentioned, the context is clear and sufficient for this simple tool.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_element_contextA
Returns a comprehensive summary of a UI element, including its DOM context, computed styles, and ranked source code candidates. Works with live Chrome selections or stored thread element_context. This is the primary tool to use when the user wants to modify a UI element.
| Name | Required | Description | Default |
|---|---|---|---|
| correlationId | No | The correlationId of a specific selection. If omitted, uses the latest selection. | |
| thread_id | No | A Yocoolab thread ID to use stored element_context instead of a live selection. | |
| includePrompt | No | Whether to include a pre-built edit prompt with constraints (default: true). |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must disclose all behavioral traits. It describes the tool as returning a summary without side effects, which is appropriate for a read-like operation. However, it lacks details on authorization needs, rate limits, or result size, leaving some behavioral aspects unclear.
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: the first defines purpose and content, the second provides usage guidance. Every sentence earns its place, with no wasted words. The description is front-loaded with key information.
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 moderate complexity (3 optional parameters, no output schema, no nested objects), the description adequately covers main use cases and return content. It does not explain the return format in detail, but the context of a summary tool makes this acceptable.
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 context for includePrompt ('pre-built edit prompt with constraints') and explains fallback behavior for correlationId. This adds some value beyond the schema field descriptions, but not significantly.
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 explicitly states the tool returns a 'comprehensive summary of a UI element' with specific contents (DOM context, computed styles, ranked source code candidates). It distinguishes from siblings by specifying it works with live Chrome selections or stored element_context, contrasting with tools like find_source_for_selection or get_latest_selection.
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 says 'This is the primary tool to use when the user wants to modify a UI element,' providing clear context for when to use it. It does not explicitly mention when not to use or name alternatives, but the primary designation offers good guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_files_touchedA
List all files that have been read, written, or edited across Claude Code sessions. Shows file paths with session counts.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description bears full burden. It discloses that files are tracked across sessions and that counts are included, but does not mention potential limitations (e.g., maximum results, ordering, or whether it covers all history or a limited window). For a read-only list tool, this is adequate but not comprehensive.
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 consists of two concise sentences. The first states the primary action and scope, the second adds key output details. There is no wasted text, and critical information is 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?
The tool is simple with no parameters and no output schema. The description explains what is listed (files read, written, edited) and what is shown (paths, session counts). However, it does not specify the return format (e.g., array of objects), any sorting, or whether results are deduplicated. For a basic listing, this is nearly 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 tool has zero parameters, and schema coverage is trivially 100%. Per guidelines, the baseline for 0 parameters is 4. The description adds no parameter semantics (unnecessary), so the score reflects the lack of need.
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 ('List') and clearly identifies the resource ('all files that have been read, written, or edited across Claude Code sessions'). It also notes the output includes file paths and session counts, distinguishing it from sibling tools like get_activity_summary or get_recent_events which cover broader or different scopes.
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 states the tool lists files across sessions, but provides no explicit guidance on when to use it instead of alternatives or when not to use it. Given the sibling tools have different focuses (e.g., find_source_for_selection, get_selection_history), the usage context is implicitly clear but no direct comparison is offered.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_latest_selectionA
Returns the most recent element selection from the Chrome extension. Includes element selector, tag, text content, classes, attributes, computed styles, and page context.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations, so description carries full burden. It lists all included data fields (element selector, tag, text, classes, etc.), providing good transparency. No mention of side effects, but tool is read-only.
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 purpose, 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?
For a simple retrieval tool with no parameters, the description fully covers what is returned, making it complete for an agent to invoke.
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?
No parameters in schema, so baseline is 4. Description adds no parameter info, but none needed.
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 returns the most recent element selection, listing specific contents (selector, tag, text, etc.). Distinguishes from siblings like get_selection_history which imply multiple selections.
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?
No explicit guidance on when to use vs alternatives. However, the description implies it's for the latest selection, and sibling names suggest other tools for history or context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_recent_eventsA
Get the most recent Claude Code activity events (tool calls, prompts, errors). Shows timestamps, tool names, and key details.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Number of recent events to return (default: 10, max: 50) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It discloses the tool shows timestamps, tool names, and key details, implying read-only behavior. However, it does not mention ordering, pagination, caching, or any side effects. It is adequate but not rich in 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 concise: two sentences front-loading the core purpose and specifying the data returned. Every sentence adds value with 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?
For a simple listing tool with one optional parameter and no output schema, the description covers purpose, event types, and displayed details. It lacks explicit return format (e.g., array of objects), but the context is largely complete. Minor gap prevents a 5.
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 one parameter (limit) with 100% schema description coverage, including default and max values. The tool description adds no additional semantic value beyond what the schema provides. 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 tool retrieves the most recent Claude Code activity events, specifies the types (tool calls, prompts, errors), and mentions the details returned (timestamps, tool names, key details). This verb+resource+scope structure distinguishes it from sibling tools like get_activity_summary or get_files_touched.
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 implicitly indicates use for viewing recent events, but it provides no explicit guidance on when to prefer this tool over alternatives (e.g., get_activity_summary for summaries, get_files_touched for file-level detail). No when-not or alternative suggestions are given.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_selection_historyA
Returns the last N element selections from the Chrome extension, newest first. Useful for comparing multiple elements or reviewing recent selections.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Number of selections to return (max 50) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the behavioral burden. It discloses ordering (newest first) and the scope (Chrome extension selections). However, it does not explicitly state that it is read-only or non-destructive, which would be helpful for safe invocations.
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 primary function. The first sentence delivers the core behavior; the second adds use-case context. No wasted words, though the description could be slightly more structured (e.g., separate purpose and params).
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 only one parameter, no output schema, and no annotations, the description covers the tool's purpose, ordering, and use-case. It is sufficient for the agent to invoke it correctly, though it could mention that results are safe to cache or that it's a read 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%, so baseline is 3. The description adds value by mentioning 'last N' and 'Chrome extension', providing context beyond the schema's limit field. This helps the agent understand the parameter's role in the tool's purpose.
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 returns the last N element selections, newest first, which is a specific verb+resource. It also distinguishes from siblings like get_latest_selection (single) and other get_* tools.
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 mentions usefulness for comparing or reviewing selections, but does not explicitly state when to use this tool over alternatives (e.g., get_latest_selection) or warn against misuse. It provides context but no direct guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
reply_to_companionA
Send a reply back to the AI Companion panel in the Chrome extension. The reply will appear as an assistant message in the companion chat UI. Supports Markdown formatting.
| Name | Required | Description | Default |
|---|---|---|---|
| message | Yes | The reply message to display in the companion panel (supports Markdown) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden. It discloses that the reply appears as an assistant message and supports Markdown, but does not cover side effects, authorization needs, rate limits, or error handling. Adequate for a simple tool but lacks depth.
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, direct sentences that convey the tool's action and result. No filler or redundant information. The key details (send, companion panel, Markdown) are 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?
Given the simplicity of the tool (one parameter, no output schema), the description is minimally adequate. However, it lacks mention of expected response (e.g., success confirmation) or any constraints mentioned in the schema's parameter description. A slightly richer description could improve 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 already documents the 'message' parameter with 'supports Markdown'. The description repeats this information without adding new meaning (e.g., length limits, required format, or behavior for empty strings). With 100% schema coverage, baseline is 3, but description adds no extra value.
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 'Send a reply back to the AI Companion panel', specifying the verb (send) and the resource (reply to companion panel). It distinguishes from sibling tools, which are all read/get operations, making this the only write tool in the group.
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 usage context (when replying to companion) but does not provide explicit guidance on when to use or when not to use this tool. No alternatives are mentioned, though siblings are all getters so it's implicitly the only write option.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
TDQS
Each tool has a clearly distinct purpose: selection handling, source finding, element context, companion messaging, activity monitoring, and dashboard URL. Even similar tools like get_latest_selection and get_selection_history differ by scope (single vs. history). No overlap that would cause confusion.
All tools follow a verb_noun pattern with underscores (e.g., get_activity_summary, find_source_for_selection). While most use 'get', two use 'find' and 'reply', which is a minor deviation from a uniform verb prefix. Overall pattern is consistent and predictable.
With 10 tools, the server is well-scoped for its purpose of combining UI element inspection and Claude Code activity monitoring. Each tool serves a clear role without unnecessary bloat or deficiency.
The tool surface covers the key workflows: selecting elements, getting context, finding source code, companion chat, and activity monitoring. Minor gaps exist, such as no tool to clear selection history or reset companion state, but these are not critical for the core use case.
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
Run user research from any AI tool. Create studies, recruit participants, query insights.
Give AI coding agents access to your Vynix visual feedback, bug reports, and AI diagnosis.
Live SEO workflow tools for Claude Code, Codex, and AI agents.
Serves your design system and coding standards to coding agents, so they stop guessing.
Related MCP Servers
- AlicenseCqualityDmaintenanceEnables Claude Desktop and other AI tools to interact directly with Figma, allowing for powerful AI-assisted design capabilities through natural language commands.92299653MIT
- AlicenseNot gradedqualityNot gradedmaintenanceEnables AI agents like Claude to interact with Figma designs through 50+ tools for creating, styling, and manipulating design elements, components, and variables via a WebSocket relay and Figma plugin.
- AlicenseNot gradedqualityDmaintenanceEnables AI assistants like Claude and Cursor to interact directly with Figma to create, modify, and analyze design elements in real-time. It provides a comprehensive suite of tools for document inspection, styling, component management, and automated layout via a bidirectional WebSocket connection.299MIT
- AlicenseNot gradedqualityCmaintenanceEnables AI assistants to inspect, modify, export, and validate design documents with 47 tools covering design, code generation, branding, and print/mockup workflows.61MIT
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/Yocoolab/mcp-server'
If you have feedback or need assistance with the MCP directory API, please join our Discord server