Skip to main content
Glama
mako10k

Web Proxy MCP Server

by mako10k

Web Proxy MCP Server

Intelligent HTTP/HTTPS proxy server with Model Context Protocol (MCP) integration for automated traffic monitoring, analysis, and browser setup.

🌟 Features

Core Proxy Capabilities

  • Selective Proxying: Only monitor specific domains while allowing direct access to others

  • HTTP/HTTPS Support: Full support for HTTP requests and HTTPS tunneling via CONNECT

  • PAC File Generation: Automatic Proxy Auto-Configuration file generation

  • Traffic Capture: Detailed request/response logging with optional header/body capture

MCP Integration

  • 16 MCP Tools: Complete automation via Model Context Protocol

  • Dynamic Configuration: Add/remove monitored domains at runtime

  • Real-time Analysis: Traffic pattern analysis and performance metrics

  • HAR Export: Standard HTTP Archive format for external analysis

Browser Setup Automation

  • Multi-Browser Support: Chrome, Firefox, cURL, and system-wide proxy setup

  • Script Generation: Automated setup script generation for different platforms

  • One-Click Configuration: Simple browser proxy configuration

Related MCP server: Android Proxy MCP

šŸš€ Quick Start

Installation

cd /home/solar/docker-appliance/mcp-servers/web-proxy-mcp
npm install

Basic Usage

# Start the proxy server
npm start

# Or run directly
node index.js

Add to VS Code MCP Configuration

Add to your VS Code mcp.json:

{
  "mcpServers": {
    "web-proxy-mcp": {
      "command": "node",
      "args": ["/home/solar/docker-appliance/mcp-servers/web-proxy-mcp/index.js"],
      "env": {}
    }
  }
}

šŸ”§ MCP Tools

Target Management

  • proxy_add_target: Add domains to monitor

  • proxy_remove_target: Remove domains from monitoring

  • proxy_list_targets: List all configured targets

  • proxy_update_target: Update target configuration

Server Control

  • proxy_start_server: Start the proxy server

  • proxy_stop_server: Stop the proxy server

  • proxy_server_status: Get server status and statistics

Browser Setup

  • proxy_generate_setup: Generate browser setup scripts

  • proxy_get_pac_file: Get PAC file content

Traffic Analysis

  • proxy_get_traffic_log: View captured traffic

  • proxy_export_har: Export traffic as HAR file

  • proxy_clear_traffic_log: Clear traffic logs

  • proxy_analyze_traffic: Analyze traffic patterns

Configuration

  • proxy_import_config: Import configuration from file

  • proxy_export_config: Export configuration to file

Advanced Analysis

  • proxy_analyze_traffic: Traffic pattern analysis

  • proxy_get_performance_metrics: Performance monitoring

šŸ“Š Usage Examples

1. Monitor Specific API

// Add target domain
await mcp.callTool('proxy_add_target', {
  domain: 'api.example.com',
  description: 'Main API endpoint',
  captureHeaders: true,
  captureBody: true
});

// Start proxy server
await mcp.callTool('proxy_start_server', {
  port: 8080,
  host: 'localhost'
});

// Generate browser setup
await mcp.callTool('proxy_generate_setup', {
  proxyHost: 'localhost',
  proxyPort: 8080
});

2. Traffic Analysis

// Get traffic log
const traffic = await mcp.callTool('proxy_get_traffic_log', {
  domain: 'api.example.com',
  limit: 50
});

// Analyze patterns
const analysis = await mcp.callTool('proxy_analyze_traffic', {
  domain: 'api.example.com',
  timeframe: '24h',
  groupBy: 'method'
});

// Export HAR file
await mcp.callTool('proxy_export_har', {
  domain: 'api.example.com',
  filename: 'api-traffic-analysis'
});

3. Browser Configuration

// Get PAC file for manual setup
const pac = await mcp.callTool('proxy_get_pac_file', {
  proxyHost: 'localhost',
  proxyPort: 8080
});

// Generate all setup scripts
const setup = await mcp.callTool('proxy_generate_setup', {
  browsers: ['chrome', 'firefox', 'system']
});

šŸ”„ Workflow Integration

Development Debugging

  1. Add your development domains to the proxy

  2. Start the proxy server

  3. Configure your browser to use the proxy

  4. Monitor API calls and responses in real-time

  5. Export traffic logs for analysis

API Testing

  1. Configure proxy for your test endpoints

  2. Run automated tests through the proxy

  3. Capture all HTTP traffic automatically

  4. Analyze response times and error patterns

  5. Export detailed HAR files for reporting

Security Analysis

  1. Monitor specific domains for security testing

  2. Capture detailed request/response headers

  3. Analyze traffic patterns for anomalies

  4. Export logs for security review

šŸ“ Project Structure

web-proxy-mcp/
ā”œā”€ā”€ index.js                 # Main MCP server entry point
ā”œā”€ā”€ package.json             # Node.js dependencies
ā”œā”€ā”€ src/
│   ā”œā”€ā”€ proxy/
│   │   ā”œā”€ā”€ target-manager.js   # Domain target management
│   │   └── proxy-server.js     # HTTP/HTTPS proxy server
│   ā”œā”€ā”€ traffic/
│   │   └── traffic-analyzer.js # Traffic capture and analysis
│   ā”œā”€ā”€ setup/
│   │   └── browser-setup.js    # Browser configuration scripts
│   └── tools/
│       ā”œā”€ā”€ tool-definitions.js # MCP tool schemas
│       └── tool-handlers.js    # MCP tool implementations
ā”œā”€ā”€ data/
│   ā”œā”€ā”€ targets.json         # Persistent target configuration
│   └── traffic-log.json     # Persistent traffic logs
└── setup-scripts/           # Generated browser setup scripts
    ā”œā”€ā”€ chrome-proxy-setup.sh
    ā”œā”€ā”€ firefox-proxy-setup.sh
    ā”œā”€ā”€ curl-proxy-setup.sh
    ā”œā”€ā”€ system-proxy-setup.sh
    └── proxy.pac

āš™ļø Configuration

Target Configuration

Targets are stored in data/targets.json:

{
  "httpbin.org": {
    "domain": "httpbin.org",
    "description": "HTTP testing service",
    "enabled": true,
    "captureHeaders": true,
    "captureBody": false,
    "createdAt": "2025-01-11T10:00:00.000Z"
  }
}

Traffic Analysis

  • Max Entries: 5,000 traffic entries (configurable)

  • Persistence: Automatic save/load from data/traffic-log.json

  • HAR Export: Standard HTTP Archive format

  • Real-time Metrics: Performance and usage statistics

Proxy Server

  • Default Port: 8080 (configurable)

  • PAC File: Automatic generation at /proxy.pac

  • Protocol Support: HTTP and HTTPS (via CONNECT tunneling)

  • Performance Monitoring: Built-in metrics collection

šŸ”’ Security Considerations

  • Local Only: Default configuration binds to localhost only

  • Selective Monitoring: Only configured domains are proxied

  • No Body Capture by Default: Sensitive data protection

  • Configurable Headers: Optional header capture for debugging

šŸ¤ Integration with Other Tools

VS Code Workflow

  1. Add to MCP configuration in VS Code

  2. Use AI assistant to manage proxy configuration

  3. Automate traffic analysis through AI commands

  4. Generate reports and documentation automatically

Development Workflow

  1. Monitor local development APIs

  2. Test staging environment interactions

  3. Debug production API calls (headers only)

  4. Performance testing and analysis

šŸ“ˆ Performance

  • Minimal Overhead: Only proxied domains incur processing cost

  • Efficient Storage: Configurable traffic log retention

  • Background Processing: Non-blocking traffic capture

  • Memory Management: Automatic cleanup of old entries

šŸ› ļø Advanced Features

Custom PAC Generation

The proxy generates intelligent PAC files that only route monitored domains through the proxy, maintaining normal browsing speed for other sites.

Traffic Pattern Analysis

Built-in analysis tools help identify:

  • API usage patterns

  • Response time trends

  • Error rate monitoring

  • Domain-specific metrics

Multi-Browser Support

Automated setup scripts for:

  • Chrome (with security flags for testing)

  • Firefox (with custom profile)

  • System-wide proxy (Linux/macOS)

  • Command-line tools (cURL)

šŸ”§ Troubleshooting

Common Issues

  1. Port in use: Change the proxy port in server configuration

  2. Browser not using proxy: Verify PAC file URL or manual proxy settings

  3. HTTPS issues: Check certificate handling in browser settings

  4. No traffic captured: Ensure domains are added to target list

Debug Mode

Run with debug logging:

DEBUG=web-proxy-mcp node index.js

Logs Location

  • Server logs: Console output

  • Traffic logs: data/traffic-log.json

  • Target config: data/targets.json

šŸ“ License

This project is part of the Docker Appliance MCP server collection and follows the same licensing terms.

šŸ¤– AI Assistant Integration

This proxy is designed to work seamlessly with AI assistants through MCP:

  • Natural Language Control: "Start monitoring api.example.com"

  • Automated Analysis: "Analyze the last hour of API traffic"

  • Report Generation: "Export traffic data for the payment API"

  • Configuration Management: "Set up Chrome to use the proxy"

The MCP integration makes this proxy particularly powerful for AI-assisted development and debugging workflows.

Available Tools

22 tools
proxy_add_targetC

Add a new target domain for proxy monitoring

ParametersJSON Schema
NameRequiredDescriptionDefault
domainYesDomain to monitor (e.g., example.com)
descriptionNoOptional description of the target
enabledNoWhether the target is active
captureHeadersNoCapture request/response headers
captureBodyNoCapture request/response body

TDQS

C2.9/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries full burden for behavioral disclosure. It states the tool adds a target but doesn't describe what happens after addition (e.g., whether monitoring starts immediately, if there are rate limits, authentication requirements, or potential side effects like server restarts). For a mutation tool with zero annotation coverage, this leaves significant behavioral gaps.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, focused sentence that immediately conveys the core function without unnecessary words. It's front-loaded with the essential action and resource, making it highly efficient. Every word earns its place in this minimal but complete statement.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a mutation tool with no annotations and no output schema, the description is insufficiently complete. It doesn't address what the tool returns (success/failure indicators, created target ID), error conditions, or behavioral implications. Given the complexity of adding a monitoring target with multiple configuration parameters, more contextual information would be helpful for the agent.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema fully documents all 5 parameters. The description adds no parameter-specific information beyond what's in the schema (e.g., it doesn't explain domain format constraints or interactions between capture settings). With high schema coverage, the baseline score of 3 is appropriate as the description doesn't enhance parameter understanding.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the action ('Add') and resource ('new target domain for proxy monitoring'), making the purpose immediately understandable. It distinguishes from siblings like 'proxy_list_targets' or 'proxy_remove_target' by specifying creation rather than querying or deletion. However, it doesn't explicitly contrast with 'proxy_update_target' which might share some functional overlap.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

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. It doesn't mention prerequisites (e.g., whether the proxy server must be running), when not to use it, or how it relates to siblings like 'proxy_update_target' for modifying existing targets. The agent must infer usage from the tool name alone.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

proxy_analyze_trafficC

Analyze captured traffic patterns and statistics

ParametersJSON Schema
NameRequiredDescriptionDefault
domainNoAnalyze specific domain only
timeframeNoTime frame for analysis24h
groupByNoGroup analysis results bydomain

TDQS

C2.9/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the full burden of behavioral disclosure. It mentions 'analyze' but doesn't specify what analysis entails (e.g., statistical summaries, trend detection), whether it's read-only or modifies data, or any constraints like rate limits or authentication needs. This leaves significant gaps for a tool that likely processes captured traffic data.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, efficient sentence that directly states the tool's function without unnecessary words. It's appropriately sized for a tool with a clear purpose and well-documented parameters, making it easy to parse and understand quickly.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the complexity of traffic analysis and lack of annotations or output schema, the description is insufficient. It doesn't explain what 'analyze' produces (e.g., aggregated statistics, visualizations), how results are returned, or any prerequisites like needing captured traffic data first. For a tool with 3 parameters and no structured output, more context is needed for effective use.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, with clear descriptions for all parameters (domain, timeframe, groupBy) including enums and defaults. The description adds no additional parameter semantics beyond what the schema provides, such as explaining how 'groupBy' affects output or what 'analyze' means in practice. Baseline 3 is appropriate given the schema does the heavy lifting.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the action ('analyze') and resource ('captured traffic patterns and statistics'), making the tool's purpose understandable. It doesn't explicitly differentiate from siblings like 'proxy_get_traffic_log' or 'proxy_get_performance_metrics', which appear to be related but distinct tools for accessing raw logs or specific metrics rather than analyzing patterns.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

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. With siblings like 'proxy_get_traffic_log' (likely for raw logs) and 'proxy_get_performance_metrics' (likely for specific metrics), there's no indication of when analysis is preferred over simple retrieval, leaving the agent to guess based on tool names alone.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

proxy_clear_traffic_logC

Clear the traffic log

ParametersJSON Schema
NameRequiredDescriptionDefault
domainNoClear logs for specific domain only
confirmYesConfirmation flag to prevent accidental deletion

TDQS

C2.7/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries full burden but only states the action without disclosing behavioral traits. It does not mention permissions needed, whether the operation is reversible, rate limits, or effects on system performance, which are critical for a destructive operation like clearing logs.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, direct sentence with zero waste, making it highly concise and front-loaded. It efficiently communicates the core action without unnecessary elaboration.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's destructive nature (clearing logs), no annotations, and no output schema, the description is incomplete. It fails to address safety considerations, error conditions, or what happens post-execution (e.g., confirmation process, system impact), leaving significant gaps for agent understanding.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema fully documents the parameters (domain for filtering, confirm for safety). The description adds no additional meaning beyond what the schema provides, such as explaining parameter interactions or default behaviors, meeting the baseline for high schema coverage.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose3/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description 'Clear the traffic log' states a clear action ('clear') and resource ('traffic log'), which is adequate. However, it lacks specificity about scope (e.g., all logs vs. filtered) and does not differentiate from sibling tools like proxy_get_traffic_log or proxy_analyze_traffic, making it vague in context.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance is provided on when to use this tool versus alternatives. It does not mention prerequisites (e.g., server status), exclusions, or related tools like proxy_get_traffic_log for viewing logs, leaving usage context implied at best.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

proxy_export_configC

Export current proxy configuration to file

ParametersJSON Schema
NameRequiredDescriptionDefault
filepathNoOutput file path
includeTrafficLogNoInclude traffic log in export

TDQS

C2.9/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries the full burden of behavioral disclosure. It states the action ('Export') but lacks details on permissions needed, whether this overwrites existing files, if it's a read-only operation, or what happens on failure. This is a significant gap for a tool that writes to a file system.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, clear sentence with no wasted words. It's front-loaded with the core action and resource, 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.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the lack of annotations and output schema, the description is incomplete. It doesn't address behavioral aspects like file overwriting, error handling, or what the exported configuration includes beyond traffic logs. For a tool that writes files and has sibling export tools, more context is needed to ensure proper use.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The description doesn't add any parameter semantics beyond what the input schema provides. Since schema description coverage is 100%, the baseline score is 3. The description doesn't explain the purpose of 'filepath' or 'includeTrafficLog' in context, such as why one might include traffic logs or file path requirements.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the action ('Export') and resource ('current proxy configuration to file'), making the purpose immediately understandable. However, it doesn't differentiate from sibling tools like 'proxy_export_har' or 'proxy_import_config', which would require mentioning what specifically is being exported (configuration vs. HAR format vs. importing).

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

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. It doesn't mention when exporting configuration is appropriate (e.g., for backup, migration, or analysis) or contrast it with related tools like 'proxy_import_config' for restoring or 'proxy_export_har' for different data formats.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

proxy_export_harC

Export traffic log as HAR (HTTP Archive) format

ParametersJSON Schema
NameRequiredDescriptionDefault
domainNoFilter by specific domain
sinceNoISO timestamp to export entries since
filenameNoOutput filename (without .har extension)

TDQS

C2.9/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries full burden. It states the tool exports data, implying a read-only operation, but doesn't disclose behavioral traits like whether it requires specific permissions, if it's rate-limited, what happens to the exported file (e.g., saved locally or returned as data), or if it affects server state. This is inadequate for a tool with potential side effects like file creation.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, efficient sentence with zero waste. It is front-loaded with the core action and format, making it easy to scan. Every word earns its place without redundancy.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given no annotations and no output schema, the description is incomplete. It doesn't explain what the tool returns (e.g., a file path, HAR data, or success status), behavioral constraints, or error conditions. For an export tool with three parameters and potential file system interactions, this leaves significant gaps for an AI agent.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema fully documents parameters (domain, since, filename). The description adds no additional meaning beyond implying these are optional filters and output naming, which is already clear from the schema. Baseline 3 is appropriate 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.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the action ('Export') and resource ('traffic log') with the specific output format ('HAR (HTTP Archive) format'). It distinguishes from siblings like proxy_get_traffic_log (which likely retrieves but doesn't export) and proxy_export_config (which exports configuration rather than traffic). However, it doesn't explicitly mention what 'traffic log' refers to in this proxy context.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance is provided on when to use this tool versus alternatives. It doesn't mention prerequisites (e.g., whether the proxy server must be running or traffic logging enabled), nor does it compare with sibling tools like proxy_get_traffic_log (which might return raw data instead of HAR format) or proxy_analyze_traffic (which might analyze rather than export).

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

proxy_generate_setupC

Generate browser and system proxy setup scripts

ParametersJSON Schema
NameRequiredDescriptionDefault
proxyHostNoProxy server hostlocalhost
proxyPortNoProxy server port
browsersNoBrowser types to generate setup for

TDQS

C2.9/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries the full burden of behavioral disclosure. It states what the tool does but lacks critical details: it doesn't specify if this generates scripts for immediate use, requires specific permissions, affects system state, or includes rate limits. For a tool that likely creates files or configurations, this gap 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.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, efficient sentence that front-loads the core purpose without unnecessary words. Every part of the sentence contributes directly to understanding the tool's function, making it highly concise and well-structured.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the complexity of generating proxy scripts, no annotations, and no output schema, the description is incomplete. It doesn't cover behavioral aspects like script format, storage location, or error handling, which are crucial for an agent to use this tool effectively in a proxy management context.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema fully documents parameters like 'proxyHost', 'proxyPort', and 'browsers'. The description adds no additional meaning beyond implying generation for multiple browser types, but it doesn't explain parameter interactions or default behaviors, resulting in a baseline score.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the action ('generate') and resource ('browser and system proxy setup scripts'), making the purpose immediately understandable. However, it doesn't specifically differentiate this tool from sibling tools like 'proxy_export_config' or 'proxy_get_pac_file', which might also involve proxy configuration outputs, so it doesn't reach the highest clarity level.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

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. It doesn't mention prerequisites, such as whether a proxy server must be running, or compare it to sibling tools like 'proxy_export_config' for configuration export or 'proxy_get_pac_file' for PAC file retrieval, leaving the agent without context for selection.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

proxy_get_pac_fileB

Get the current PAC (Proxy Auto-Configuration) file content

ParametersJSON Schema
NameRequiredDescriptionDefault
proxyHostNoProxy server hostlocalhost
proxyPortNoProxy server port

TDQS

B3.1/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the full burden of behavioral disclosure. It states a read operation ('Get'), implying it's likely non-destructive, but does not specify if authentication is required, rate limits apply, or what the output format is. For a tool with zero annotation coverage, this is a significant gap in transparency.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, clear sentence that efficiently conveys the tool's purpose without unnecessary words. It is front-loaded and appropriately sized, making it easy to understand at a glance.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's complexity is low (simple retrieval with two optional parameters) and schema coverage is high, the description is adequate but incomplete. It lacks output details (no output schema) and behavioral context, which are important for a tool in a proxy management context. It meets minimum viability but has clear gaps.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, with both parameters ('proxyHost' and 'proxyPort') well-documented in the schema, including defaults. The description adds no additional meaning beyond the schema, such as explaining how these parameters affect the PAC file retrieval. With high schema coverage, 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.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the verb 'Get' and the resource 'current PAC (Proxy Auto-Configuration) file content', making the purpose specific and understandable. However, it does not distinguish this tool from siblings like 'proxy_get_performance_metrics' or 'proxy_get_traffic_log', which also retrieve data but for different resources, so it lacks explicit differentiation.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

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, such as when to retrieve PAC file content instead of other proxy-related data like traffic logs or performance metrics. There is no mention of prerequisites, context, or exclusions, leaving usage entirely implicit.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

proxy_get_performance_metricsC

Get proxy server performance metrics

ParametersJSON Schema
NameRequiredDescriptionDefault
resetNoReset metrics after retrieval

TDQS

C2.9/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the full burden of behavioral disclosure. It states 'Get' implies a read operation, but doesn't mention if this requires specific permissions, how metrics are formatted, whether it's real-time or historical, or any rate limits. For a tool with zero annotation coverage, this leaves significant gaps in understanding its behavior.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, efficient sentence that directly states the tool's purpose without any wasted words. It's appropriately sized and front-loaded, making it easy to understand at a glance.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the lack of annotations and output schema, the description is incomplete. It doesn't explain what metrics are returned, their format, or any behavioral nuances like permissions or data freshness. For a performance metrics tool with no structured context, this description is too minimal to be fully helpful.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema has 100% description coverage, with one parameter 'reset' fully documented in the schema. The description doesn't add any meaning beyond the schema, such as explaining what metrics are included or how resetting affects them. Baseline score of 3 is appropriate since the schema does the heavy lifting.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the verb 'Get' and the resource 'proxy server performance metrics', making the purpose immediately understandable. However, it doesn't differentiate from sibling tools like 'proxy_server_status' or 'proxy_analyze_traffic', which might have overlapping functionality, so it doesn't reach the highest score.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

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. With siblings like 'proxy_server_status' and 'proxy_analyze_traffic' that might relate to performance or metrics, there's no indication of context, exclusions, or prerequisites for usage.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

proxy_get_traffic_logC

Get captured traffic log with filtering options

ParametersJSON Schema
NameRequiredDescriptionDefault
domainNoFilter by specific domain
methodNoFilter by HTTP method (GET, POST, etc.)
limitNoMaximum number of entries to return
sinceNoISO timestamp to get entries since

TDQS

C2.9/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries the full burden of behavioral disclosure. It mentions 'filtering options' but doesn't describe key behaviors: whether this is a read-only operation (implied by 'Get' but not stated), what the return format is (e.g., list of log entries), pagination handling (beyond the 'limit' parameter), or any rate limits. For a tool with 4 parameters and no annotation coverage, this is a significant gap in transparency.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, efficient sentence that front-loads the core purpose ('Get captured traffic log') and adds a useful qualifier ('with filtering options'). There is no wasted verbiage or redundancy, making it appropriately sized for the tool's complexity.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's moderate complexity (4 parameters, no output schema, no annotations), the description is incomplete. It lacks details on return values (e.g., log entry structure), behavioral constraints (e.g., read-only nature, server state requirements), and differentiation from siblings. While concise, it doesn't provide enough context for an agent to fully understand how to use this tool effectively alongside others.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema fully documents all 4 parameters (domain, method, limit, since). The description adds no specific parameter semantics beyond mentioning 'filtering options' generically, which the schema already covers with individual filter descriptions. This meets the baseline of 3 when the schema does the heavy lifting, but adds no extra value.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the verb ('Get') and resource ('captured traffic log'), making the purpose understandable. It distinguishes this tool from siblings like proxy_analyze_traffic (which likely analyzes rather than retrieves) and proxy_clear_traffic_log (which clears rather than gets). However, it doesn't explicitly differentiate from proxy_export_har (which might export similar data in HAR format), keeping it from a perfect score.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

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. It doesn't mention siblings like proxy_export_har for exporting logs or proxy_analyze_traffic for analysis, nor does it specify prerequisites (e.g., whether the proxy server must be running). Usage is implied only by the name and description, 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.

proxy_import_configC

Import proxy configuration from file

ParametersJSON Schema
NameRequiredDescriptionDefault
filepathYesPath to configuration file
mergeNoMerge with existing config or replace

TDQS

C2.9/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries full burden but offers minimal behavioral insight. It implies a write operation ('Import') but doesn't disclose critical details like required permissions, whether it overwrites or merges by default (though the schema hints at this), error handling, or impact on server state. This is inadequate for a mutation tool with zero annotation coverage.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, efficient sentence with zero wasted words. It's front-loaded with the core action and resource, making it easy to parse quickly.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's complexity (a mutation operation with no annotations and no output schema), the description is insufficient. It lacks details on behavioral traits, error conditions, or output expectations, leaving significant gaps for an agent to operate safely and effectively.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The schema description coverage is 100%, with clear documentation for both parameters (filepath and merge). The description adds no additional meaning beyond the schema, such as file format specifics or merge behavior implications. Baseline 3 is appropriate since the schema does the heavy lifting.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the action ('Import') and resource ('proxy configuration from file'), making the purpose immediately understandable. However, it doesn't differentiate from sibling tools like proxy_export_config, which handles the opposite operation, so it doesn't reach the highest score.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

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. It doesn't mention prerequisites (e.g., file format, server status), exclusions, or relationships with siblings like proxy_export_config or proxy_update_target, leaving the agent to infer usage context.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

proxy_list_targetsC

List all target domains and their status

ParametersJSON Schema
NameRequiredDescriptionDefault
statusNoFilter targets by statusall

TDQS

C2.9/5.0
Behavior2/5

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 mentions listing 'status' but doesn't disclose behavioral traits such as whether this is a read-only operation, if it requires authentication, potential rate limits, or what the output format looks like (e.g., list structure, pagination). This leaves significant gaps for a tool that interacts with proxy targets.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, efficient sentence that directly states the tool's purpose without any wasted words. It is appropriately sized and front-loaded, making it easy for an agent to parse quickly.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given no annotations and no output schema, the description is incomplete for a tool that lists domains and statuses. It doesn't explain what 'target domains' are in this context, what 'status' entails (e.g., active/inactive meanings), or the return format, leaving the agent with insufficient information for proper invocation.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema has 100% description coverage, clearly documenting the 'status' parameter with enum values and default. The description adds no additional meaning beyond implying filtering by status, so it meets the baseline of 3 where the schema does the heavy lifting without extra value from the description.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the verb ('List') and resource ('all target domains and their status'), making the purpose unambiguous. However, it doesn't explicitly differentiate from sibling tools like 'proxy_get_traffic_log' or 'proxy_server_status', which also list information but for different resources.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

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. With siblings like 'proxy_get_traffic_log' for logs and 'proxy_server_status' for server state, there's no indication of context or exclusions, leaving the agent to infer usage based on naming alone.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

proxy_remove_targetC

Remove a target domain from proxy monitoring

ParametersJSON Schema
NameRequiredDescriptionDefault
domainYesDomain to remove from monitoring

TDQS

C2.9/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the full burden of behavioral disclosure. It states the action is 'Remove,' implying a destructive mutation, but doesn't clarify if this is reversible, what permissions are required, whether it affects ongoing monitoring sessions, or what happens to associated data (e.g., traffic logs). For a mutation tool with zero annotation coverage, this leaves significant gaps in understanding the tool's behavior and side effects.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, efficient sentence that directly states the tool's purpose without any fluff or redundancy. It is front-loaded with the core action and resource, making it easy to parse quickly. Every word earns its place, and there's no wasted verbiage or structural issues.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the complexity of a destructive mutation tool with no annotations and no output schema, the description is incomplete. It lacks details on behavioral traits (e.g., side effects, error conditions), usage context, and what to expect upon success or failure. While the purpose is clear, the overall context for safe and effective use is insufficient, especially compared to richer sibling tools like 'proxy_analyze_traffic' which might have more descriptive support.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema has 100% description coverage, with the 'domain' parameter fully documented as 'Domain to remove from monitoring.' The description adds no additional semantic context beyond what the schema provides, such as format examples (e.g., 'example.com') or constraints (e.g., must be an existing target). Given the high schema coverage, a baseline score of 3 is appropriate, as the description doesn't compensate but doesn't need to heavily.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the action ('Remove') and resource ('a target domain from proxy monitoring'), making the purpose immediately understandable. It distinguishes this tool from siblings like 'proxy_add_target' and 'proxy_update_target' by specifying removal rather than addition or modification. However, it doesn't explicitly mention that this is for monitoring targets specifically, which could be inferred but isn't stated.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

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. It doesn't mention prerequisites (e.g., the domain must already be monitored), exclusions (e.g., cannot remove domains that are actively being analyzed), or direct alternatives like 'proxy_update_target' for modifying instead of removing. Without such context, the agent must infer usage from the tool name and sibling list alone.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

proxy_server_statusB

Get proxy server status and statistics including SSL bumping status

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

B3.4/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries full burden for behavioral disclosure. It mentions what information is returned (status, statistics, SSL bumping status) but doesn't describe format, real-time vs cached data, permission requirements, or error conditions. For a status-checking tool with zero annotation coverage, this leaves significant gaps.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, efficient sentence that communicates the core purpose without unnecessary words. Every element ('Get proxy server status and statistics including SSL bumping status') serves a clear informational purpose.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's simplicity (0 parameters, no output schema) and lack of annotations, the description provides basic purpose but lacks details about return format, data freshness, or error handling. It's minimally adequate but could benefit from more behavioral context for a status-checking operation.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The tool has 0 parameters with 100% schema description coverage, so the baseline is 4. The description doesn't need to explain parameters, and it correctly indicates this is a parameterless status query.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool's purpose with a specific verb ('Get') and resource ('proxy server status and statistics'), including the specific detail about SSL bumping status. It distinguishes itself from siblings like proxy_get_performance_metrics or proxy_get_traffic_log by focusing on overall server status rather than specific metrics or logs.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies usage for checking server status and SSL bumping, but doesn't explicitly state when to use this tool versus alternatives like proxy_get_performance_metrics or proxy_start_server. No guidance on prerequisites, frequency, or exclusions is provided.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

proxy_start_serverC

Start the proxy server with optional SSL bumping

ParametersJSON Schema
NameRequiredDescriptionDefault
portNoPort to run proxy server on
hostNoHost to bind proxy server tolocalhost
enableSSLBumpingNoEnable SSL bumping for HTTPS traffic interception

TDQS

C2.9/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries the full burden of behavioral disclosure. It mentions 'optional SSL bumping,' which hints at a security-related feature, but fails to describe critical behaviors such as whether this is a long-running process, what happens if the server is already active, potential side effects (e.g., port conflicts), or authentication needs. For a server-start tool, this is a significant gap in transparency.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, efficient sentence that front-loads the core action ('Start the proxy server') and includes a key optional feature ('with optional SSL bumping'). There is no wasted verbiage, making it highly concise and well-structured for quick comprehension.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the complexity of starting a server (a state-changing operation) and the lack of annotations and output schema, the description is incomplete. It doesn't cover behavioral aspects like runtime effects, error conditions, or what success looks like. For a tool in a proxy management context with many siblings, more context is needed to guide the agent effectively.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The description adds minimal value beyond the input schema, which has 100% coverage with clear descriptions for all three parameters. It mentions 'optional SSL bumping,' which loosely relates to the enableSSLBumping parameter but doesn't elaborate on its implications or usage. Since the schema already fully documents parameters, the baseline score of 3 is appropriate, as the description doesn't significantly enhance understanding.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the action ('Start') and resource ('proxy server'), with additional context about optional SSL bumping. It distinguishes this tool from sibling tools like proxy_stop_server and proxy_server_status by indicating it initiates the server. However, it doesn't explicitly differentiate from proxy_generate_setup or other setup-related tools, which slightly reduces specificity.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

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. It doesn't mention prerequisites (e.g., whether the server must be stopped first), when not to use it (e.g., if the server is already running), or refer to sibling tools like proxy_stop_server or proxy_server_status for status checks. This leaves the agent without contextual usage cues.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

proxy_stop_serverB

Stop the proxy server

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

B3.1/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the full burden of behavioral disclosure. 'Stop the proxy server' implies a destructive/mutating operation, but it doesn't specify consequences (e.g., terminates active connections, affects other tools), permissions required, error conditions (e.g., if server isn't running), or rate limits. For a mutation tool with zero annotation coverage, this is inadequate.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, efficient sentence with zero wasted words. It's front-loaded with the core action ('Stop') and resource ('proxy server'), making it immediately scannable and understandable. Every word earns its place.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's complexity (a server control operation), lack of annotations, and no output schema, the description is insufficient. It doesn't explain what 'stopping' entails behaviorally, what happens to active sessions, whether it's reversible, or what the response looks like. For a mutation tool in a proxy management context, more detail is needed.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The tool has 0 parameters with 100% schema description coverage, so the schema fully documents the absence of inputs. The description doesn't need to add parameter information, and it doesn't contradict the schema. A baseline of 4 is appropriate for zero-parameter tools where the schema handles documentation.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the action ('Stop') and resource ('the proxy server'), making the purpose immediately understandable. It doesn't explicitly differentiate from sibling tools like 'proxy_start_server' or 'proxy_server_status', but the verb 'Stop' inherently contrasts with 'Start' and 'Status', providing some implicit differentiation. A 5 would require explicit sibling comparison.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

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. It doesn't mention prerequisites (e.g., server must be running), exclusions (e.g., don't use if server is already stopped), or relationships to sibling tools like 'proxy_start_server' or 'proxy_server_status'. The agent must infer usage from context alone.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

proxy_update_targetC

Update target domain configuration

ParametersJSON Schema
NameRequiredDescriptionDefault
domainYesDomain to update
descriptionNoNew description
enabledNoEnable/disable target
captureHeadersNoEnable/disable header capture
captureBodyNoEnable/disable body capture

TDQS

C2.9/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries full burden. 'Update' implies a mutation operation, but it doesn't disclose behavioral traits like whether changes are reversible, permission requirements, rate limits, or what happens if the domain doesn't exist. It mentions 'configuration' but lacks details on scope or impact.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, efficient sentence with zero waste—'Update target domain configuration' is front-loaded and appropriately sized for the tool's purpose. Every word earns its place without redundancy.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given no annotations, no output schema, and a mutation tool with 5 parameters, the description is incomplete. It doesn't explain what 'target domain configuration' includes beyond the implied parameters, lacks error handling or success indicators, and fails to address behavioral aspects like side effects or prerequisites.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema fully documents all 5 parameters. The description adds no additional meaning beyond implying these parameters relate to 'target domain configuration', which aligns with the schema but doesn't provide extra context like default values or inter-parameter dependencies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description 'Update target domain configuration' clearly states the action (update) and resource (target domain configuration). It distinguishes from siblings like 'proxy_add_target' (adds new) and 'proxy_remove_target' (removes), but doesn't explicitly mention what 'target domain configuration' entails beyond the implied domain settings.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance on when to use this tool versus alternatives like 'proxy_add_target' or 'proxy_remove_target'. The description implies it modifies existing configurations but doesn't specify prerequisites (e.g., target must exist) or use cases (e.g., enabling/disabling, updating descriptions).

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

ssl_ca_statusB

Get current CA status and configuration

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

B3.1/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries full burden for behavioral disclosure. While 'Get' implies a read-only operation, it doesn't specify whether this requires special permissions, what format the status information returns in, or if there are any rate limits. The description lacks essential context about what 'CA status and configuration' actually includes.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is perfectly concise - a single sentence that communicates the essential purpose without any wasted words. It's front-loaded with the core functionality and doesn't include unnecessary elaboration.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a tool with no annotations and no output schema, the description is insufficient. It doesn't explain what 'CA status' means, what configuration details are returned, or what format the response takes. Given the complexity implied by 'CA status and configuration' and the lack of structured documentation, more descriptive context is needed.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The tool has zero parameters with 100% schema description coverage, so the baseline is 4. The description appropriately doesn't waste space discussing non-existent parameters, though it could theoretically mention that no parameters are required for this status check.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the action ('Get') and resource ('CA status and configuration'), making the tool's purpose immediately understandable. However, it doesn't distinguish this tool from its sibling 'ssl_list_cas' which might provide overlapping information about CAs, missing an opportunity for sibling differentiation.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

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 like 'ssl_list_cas' or 'ssl_get_ca_certificate'. There's no mention of prerequisites, timing considerations, or what makes this tool the right choice for obtaining CA status versus other SSL-related tools.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

ssl_create_caC

Create a new Certificate Authority for SSL bumping

ParametersJSON Schema
NameRequiredDescriptionDefault
caNameNoName for the new CA (default: 'default')default
descriptionNoDescription for the CA
overwriteNoOverwrite existing CA if it exists
subjectNoCertificate subject information

TDQS

C2.9/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries full burden for behavioral disclosure. It states 'Create' which implies a write/mutation operation, but doesn't disclose critical behaviors: whether this requires admin permissions, if it's irreversible, what happens on failure, or if it affects existing SSL configurations. For a security-critical tool with zero annotation coverage, this is a significant gap in transparency.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, clear sentence that states exactly what the tool does without unnecessary words. It's front-loaded with the core action and purpose, making it immediately understandable. Every word earns its place in this concise formulation.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a security tool that creates Certificate Authorities (a significant operation with potential system-wide impact), the description is insufficient. No annotations exist to provide safety context, no output schema documents what gets returned, and the description doesn't explain the consequences of creating a CA or how it integrates with the broader SSL/proxy system. Given the complexity and security implications, this should provide more complete context.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so parameters are well-documented in the schema itself. The description doesn't add any parameter-specific information beyond what's in the schema descriptions. This meets the baseline expectation when schema coverage is complete, but doesn't provide additional context about parameter relationships or usage patterns.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the action ('Create') and resource ('Certificate Authority for SSL bumping'), making the purpose immediately understandable. However, it doesn't differentiate this tool from sibling SSL tools like 'ssl_generate_certificate' or 'ssl_list_cas', which would require more specific context about when to create a CA versus other SSL operations.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance is provided on when to use this tool versus alternatives. The description doesn't mention prerequisites, when SSL bumping requires a CA, or how this relates to sibling tools like 'ssl_generate_certificate' (which might depend on an existing CA). Without this context, an agent might struggle to choose between related SSL operations.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

ssl_generate_certificateC

Generate server certificate for specific domain

ParametersJSON Schema
NameRequiredDescriptionDefault
domainYesDomain name for the certificate
altNamesNoAlternative domain names (SAN)

TDQS

C2.9/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries full burden for behavioral disclosure. It states 'Generate' which implies a write/mutation operation, but doesn't specify whether this requires specific permissions, generates self-signed vs CA-signed certificates, what the output format is, or any rate limits. The description is minimal and leaves critical behavioral aspects undocumented.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is extremely concise at just 6 words, with zero wasted language. It's front-loaded with the core purpose and doesn't contain any unnecessary elaboration or repetition.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a certificate generation tool with no annotations and no output schema, the description is inadequate. It doesn't explain what type of certificate is generated, what the output contains, whether this requires an existing CA, or any error conditions. The minimal description fails to provide sufficient context for safe and effective use.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema has 100% description coverage, with both 'domain' and 'altNames' clearly documented in the schema itself. The description adds no additional parameter information beyond what's already in the schema, so it meets the baseline score of 3 for high schema coverage.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the action ('Generate') and resource ('server certificate for specific domain'), making the tool's purpose immediately understandable. However, it doesn't differentiate itself from sibling SSL tools like 'ssl_create_ca' or 'ssl_get_ca_certificate', which would require mentioning this generates end-entity certificates rather than CA certificates.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

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 like 'ssl_create_ca' for creating certificate authorities or 'ssl_get_ca_certificate' for retrieving existing certificates. It mentions 'for specific domain' but doesn't explain prerequisites, dependencies, or typical use cases.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

ssl_get_ca_certificateB

Get CA certificate and installation instructions

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

B3.1/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the full burden of behavioral disclosure. It mentions retrieving a CA certificate and instructions but doesn't specify if this is a read-only operation, requires authentication, involves rate limits, or what the output format might be. This leaves critical behavioral traits unclear for a tool that likely handles sensitive SSL data.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, efficient sentence that directly states the tool's purpose without any wasted words. It is appropriately sized and front-loaded, making it easy to parse quickly.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the complexity of SSL/CA operations and the lack of annotations and output schema, the description is incomplete. It doesn't explain what kind of CA certificate is retrieved (e.g., active, specific), the format of installation instructions, or any prerequisites, leaving gaps for effective tool use in a security context.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The tool has 0 parameters with 100% schema description coverage, so the schema fully documents the lack of inputs. The description adds no parameter information, which is acceptable here as there are no parameters to explain. A baseline of 4 is appropriate since no compensation is needed for missing parameter details.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the action ('Get') and the resource ('CA certificate and installation instructions'), making the purpose understandable. However, it doesn't differentiate this tool from sibling SSL tools like 'ssl_ca_status' or 'ssl_list_cas', which might provide overlapping or related CA information.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance is provided on when to use this tool versus alternatives. With siblings like 'ssl_ca_status' and 'ssl_list_cas', the description lacks context on whether this retrieves a specific CA certificate, all CAs, or installation details only, leaving usage ambiguous.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

ssl_list_casB

List all available Certificate Authorities

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

B3.2/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries full burden but only states what the tool does, not how it behaves. It doesn't disclose if this is a read-only operation, what format the list returns, if there are rate limits, or any error conditions.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, clear sentence with zero wasted words. It's front-loaded with the core purpose and efficiently communicates the essential information without unnecessary elaboration.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple list tool with no parameters and no output schema, the description is adequate but minimal. It lacks details about return format or behavioral context, which would be helpful given the absence of annotations.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The tool has 0 parameters, and schema coverage is 100%, so no parameter documentation is needed. The description appropriately doesn't mention parameters, earning a high baseline score for this dimension.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the action ('List') and resource ('Certificate Authorities'), making the purpose immediately understandable. It doesn't differentiate from sibling tools like 'ssl_ca_status' or 'ssl_get_ca_certificate', which prevents a perfect score.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance is provided on when to use this tool versus alternatives like 'ssl_ca_status' (which might check status) or 'ssl_get_ca_certificate' (which might retrieve a specific CA). The description lacks context about prerequisites or exclusions.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

ssl_switch_caC

Switch to a different Certificate Authority

ParametersJSON Schema
NameRequiredDescriptionDefault
caNameYesName of the CA to switch to

TDQS

C2.9/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries full burden but only states the action without behavioral details. It doesn't disclose if this is a destructive operation (e.g., affects active SSL configurations), requires specific permissions, has side effects, or what happens on success/failure, which is critical for a tool that likely modifies system state.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, direct sentence with zero wasted words, making it highly concise and front-loaded. It efficiently communicates the core action without unnecessary elaboration.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's complexity (likely a mutation affecting SSL configuration), lack of annotations, and no output schema, the description is incomplete. It fails to explain behavioral aspects, return values, or error conditions, leaving significant gaps for safe and effective use by an AI agent.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, with the single parameter 'caName' documented as 'Name of the CA to switch to'. The description adds no additional meaning beyond this, such as format examples or constraints, so it meets the baseline for adequate but unenriched parameter context.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the action ('Switch') and resource ('Certificate Authority'), making the purpose understandable. However, it doesn't differentiate from sibling tools like 'ssl_ca_status' or 'ssl_create_ca', which would require more specificity about what 'switch' entails operationally.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance is provided on when to use this tool versus alternatives. It doesn't mention prerequisites (e.g., existing CAs), exclusions, or how it relates to siblings like 'ssl_ca_status' for checking status or 'ssl_create_ca' for creating new CAs, leaving the agent to infer usage context.

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.

  1. 22 tool updates
    • First observedproxy_add_target
    • First observedproxy_analyze_traffic
    • First observedproxy_clear_traffic_log
    • First observedproxy_export_config
    • First observedproxy_export_har
    • First observedproxy_generate_setup
    • First observedproxy_get_pac_file
    • First observedproxy_get_performance_metrics
    • First observedproxy_get_traffic_log
    • First observedproxy_import_config
    • First observedproxy_list_targets
    • First observedproxy_remove_target
    • First observedproxy_server_status
    • First observedproxy_start_server
    • First observedproxy_stop_server
    • First observedproxy_update_target
    • First observedssl_ca_status
    • First observedssl_create_ca
    • First observedssl_generate_certificate
    • First observedssl_get_ca_certificate
    • First observedssl_list_cas
    • First observedssl_switch_ca

TDQS

A3.5/5.0
Disambiguation5/5

Every tool has a clearly distinct purpose with no ambiguity. For example, proxy_start_server and proxy_stop_server handle server lifecycle, while ssl_create_ca and ssl_generate_certificate manage SSL operations, all with non-overlapping functions.

Naming Consistency5/5

Tool names follow a consistent verb_noun pattern throughout, with clear prefixes (proxy_ or ssl_) for grouping. All tools use snake_case and descriptive names like proxy_export_har and ssl_list_cas, making them predictable and readable.

Tool Count4/5

With 22 tools, the count is slightly high but reasonable for the comprehensive web proxy domain, covering server management, traffic monitoring, SSL handling, and configuration. It's well-scoped, though could be streamlined without losing core functionality.

Completeness5/5

The tool set provides complete coverage for web proxy operations, including CRUD for targets (add, list, update, remove), server lifecycle (start, stop, status), traffic analysis (analyze, get, clear, export), SSL management (CA creation, certificates, switching), and configuration handling (import, export, setup). No obvious gaps exist.

Maintenance

ActivityInactive
ResponsivenessSyncing

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

Related MCP Servers

Latest Blog Posts

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/mako10k/mcp-web-proxy'

If you have feedback or need assistance with the MCP directory API, please join our Discord server