Skip to main content
Glama
GitDro

MCP Playground

by GitDro

MCP Playground

Research and analysis toolkit with real-time data access via Model Context Protocol (MCP).

Live Server: https://mcp-playground.fastmcp.app/mcp

Quick Start

git clone <your-repo>
cd mcp_arena
uv sync --extra local
uv run streamlit run app.py

Related MCP server: Sibyl

MCP Client Setup

Claude Desktop

Option 1: Remote Server (Recommended) Add to claude_desktop_config.json:

{
  "mcpServers": {
    "mcp-playground": {
      "type": "http",
      "url": "https://mcp-playground.fastmcp.app/mcp"
    }
  }
}

Option 2: Local Development Add to claude_desktop_config.json:

{
  "mcpServers": {
    "mcp-playground-local": {
      "command": "uv",
      "args": ["run", "python", "mcp_server.py"]
    }
  }
}

Note: Run this command from your mcp_arena directory

Claude Code

  1. Cmd/Ctrl + Shift + P → "MCP: Add Server"

  2. Choose "Add remote HTTP server"

  3. URL: https://mcp-playground.fastmcp.app/mcp

LMStudio (v0.3.17+)

  1. Program tab → "Edit mcp.json"

  2. Add configuration:

{
  "mcp-arena": {
    "url": "https://mcp-playground.fastmcp.app/mcp",
  }
}

Available Tools

Research & Analysis

  • web_search(query) - DuckDuckGo web search

  • analyze_url(url) - Extract and analyze webpage content

  • arxiv_search(query) - Academic paper search with full PDF text

Financial & Economic Data

  • get_stock_overview(symbol) - Real-time stock, crypto, and market data

  • analyze_canadian_economy() - Economic indicators and analysis

Media & Content

  • analyze_youtube_url(url) - Video transcription and analysis

Location & Weather

  • get_weather(location) - Weather forecasts by city or coordinates

  • get_tide_info(location) - Canadian coastal tide times

Toronto Data

  • get_toronto_crime(neighbourhood, crime_type) - Crime statistics by area

  • list_toronto_neighbourhoods() - Available neighborhoods

Development

Local Setup

# Core dependencies
uv sync

# With Streamlit UI
uv sync --extra local

# With development tools
uv sync --extra dev

Testing Commands

# Streamlit UI
uv run streamlit run app.py

# MCP server for Claude Desktop
uv run python mcp_server.py

# HTTP mode testing
uv run python -m src.server http 8000

Environment Variables

  • YOUTUBE_MAX_TOKENS=24000 - Transcript processing limit

  • WEBSHARE_PROXIES="ip:port:user:pass,..." - Proxies for YouTube cloud deployment

  • MCP_RETRY_MAX_ATTEMPTS=3 - Auto-retry failed tool calls

  • MCP_RETRY_TYPE_COERCION=true - Auto-fix type mismatches

Tool Development

Tools in src/tools/ modules use @mcp.tool(description="...") decorator with automatic schema generation from Python type hints.

Deployment

Cloud (FastMCP)

  1. Push to main branch

  2. FastMCP Cloud auto-deploys from GitHub

  3. Get auth token from dashboard

  4. Configure clients with deployment URL

Local Development

  1. Clone repository

  2. uv sync --extra local

  3. uv run streamlit run app.py

Documentation

Available Tools

10 tools
analyze_canadian_economyD

Canadian economic analysis and overview

ParametersJSON Schema
NameRequiredDescriptionDefault
focusNooverview

TDQS

D1.8/5.0
Behavior1/5

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

No annotations exist, so the description must fully disclose behavior. It provides no information about side effects, network usage, computational cost, or auth requirements. The tool's behavior is entirely opaque.

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

Conciseness2/5

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

The description is extremely concise (one short phrase), but it does not earn its place because it provides insufficient information. It is under-specified rather than efficiently clear.

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

Completeness1/5

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

Given the ability to describe behavior and parameters, the description is severely incomplete. No output schema exists, no parameter guidance, no behavioral hints. An agent would struggle to use this tool correctly.

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

Parameters1/5

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

Schema description coverage is 0% and the tool description adds no meaning to the single parameter 'focus'. Possible values or semantics like 'overview' are not explained, leaving the agent to guess.

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 states the tool's domain ('Canadian economic analysis and overview') but lacks a specific verb and resource. It does not differentiate from siblings that are clearly different domains (e.g., weather, stock), but fails to specify what kind of analysis is performed (e.g., data retrieval, report generation). Thus, it is vague but not misleading.

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. There is no description of context, prerequisites, or exclusions. The agent receives no help in deciding when this tool is appropriate.

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

analyze_urlC

Comprehensive analysis of webpage content optimized for LLM understanding

ParametersJSON Schema
NameRequiredDescriptionDefault
urlYes

TDQS

C2.6/5.0
Behavior2/5

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

The description lacks behavioral details such as whether it fetches the web page, extracts content, or summarizes. With no annotations, the description should disclose traits like network usage or rate limits but does not.

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

Conciseness2/5

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

While short, the description is under-specified and lacks essential details, making it not genuinely concise but rather incomplete.

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 single parameter and no output schema, the description should explain what 'analysis' means (e.g., keywords, summary) but does not. The agent cannot determine the tool's output or behavior.

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

Parameters1/5

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

The schema has 0% coverage and the description provides no information about the 'url' parameter—no format, examples, or constraints. This is a critical gap.

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

Purpose5/5

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

The description clearly states it analyzes webpage content, with the verb 'analyze' and resource 'URL'. It distinguishes from sibling tools like 'analyze_youtube_url' and 'analyze_canadian_economy' which are domain-specific.

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 its siblings. There are no exclusions or context about when it is appropriate.

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

analyze_youtube_urlB

Get YouTube video transcript and analyze content with optional specific questions

ParametersJSON Schema
NameRequiredDescriptionDefault
urlYes
questionNo

TDQS

B3.2/5.0
Behavior2/5

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

No annotations are provided, so the description must disclose behavior. It only mentions fetching and analyzing without details on side effects, permissions, or limitations (e.g., rate limits, video length constraints).

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?

A single, well-formed sentence that front-loads the core function. No redundant information, 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?

Despite conciseness, the tool has no output schema and no annotations. The description omits important context such as return format, error handling, prerequisites, or usage limits making it incomplete for an 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 coverage is 0%, so the description must compensate. It indirectly explains 'url' as YouTube video and 'question' as optional query, but lacks format details or constraints (e.g., URL validity). Adds some meaning but not comprehensive.

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

Purpose5/5

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

The description clearly states the tool retrieves a YouTube video transcript and analyzes it, with optional specific questions. This distinguishes it from sibling tools like 'analyze_url' (general URL analysis) and 'analyze_canadian_economy' (specific domain).

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 explicit guidance on when to use this tool versus alternatives. It is implied for YouTube transcript analysis but lacks 'when not to use' or mention of sibling tools.

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

get_stock_overviewC

Get comprehensive stock, crypto, and market data

ParametersJSON Schema
NameRequiredDescriptionDefault
symbolYes

TDQS

C2.2/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 only says 'get...data' without disclosing read-only nature, rate limits, data freshness, or potential side effects. Minimal behavioral info.

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

Conciseness3/5

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

Single sentence is concise but lacks essential information. For a one-parameter tool, conciseness is acceptable but structure could be improved by front-loading key details.

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 output schema, no annotations, and vague description, the tool definition fails to inform the agent about return format or data type. Incomplete for effective selection and invocation.

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

Parameters1/5

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

Schema has one required parameter 'symbol' with 0% description coverage. The description does not explain what 'symbol' represents (e.g., stock ticker, crypto code) or expected format. No additional meaning added.

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?

Description states 'Get comprehensive stock, crypto, and market data' which is vague; 'comprehensive' is subjective and doesn't specify what data fields are included. It does not clearly differentiate from siblings like 'analyze_canadian_economy' or 'get_weather'.

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 (e.g., 'analyze_canadian_economy' for focused economic data). No mention of prerequisites or exclusions. The description provides no usage context.

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

get_tide_infoC

Get Canadian coastal tide times and heights

ParametersJSON Schema
NameRequiredDescriptionDefault
dateNo
locationYes

TDQS

C2.8/5.0
Behavior2/5

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

No annotations exist, and the description does not disclose any behavioral traits such as output format, data sources, or limitations. For a tool with no annotations, this is insufficient.

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

Conciseness4/5

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

The description is a single concise sentence with no unnecessary words. However, it is too brief and could be restructured to include more details without losing conciseness.

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 has no output schema and two parameters, the description should explain what data is returned (e.g., timing, heights, units) and how to use parameters. It fails to do so, leaving agents with incomplete context.

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

Parameters1/5

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

Schema description coverage is 0%, yet the description adds no information about parameters (e.g., that location is required, date is optional, or acceptable formats). The description does not compensate for the lack of schema descriptions.

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

Purpose5/5

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

The description clearly states the tool's action ('Get') and resource ('Canadian coastal tide times and heights'), which is specific and distinguishes it from all sibling tools.

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 usage guidelines are provided. There is no indication when to use this tool versus alternatives, nor any context about required prerequisites or excluded cases.

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

get_toronto_crimeC

Get Toronto neighbourhood crime statistics and trends

ParametersJSON Schema
NameRequiredDescriptionDefault
crime_typeNoassault
neighbourhoodYes

TDQS

C2.3/5.0
Behavior2/5

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

With no annotations, the description must disclose behavioral traits, but it only gives a vague phrase ('statistics and trends'). No mention of safety, rate limits, or output characteristics.

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

Conciseness2/5

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

While short, the description is too brief for a tool with 2 parameters and no annotations, sacrificing necessary detail.

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

Completeness1/5

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

Given the tool's simplicity (2 params, no output schema), the description lacks essential details about parameter meaning, return format, and usage constraints.

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

Parameters1/5

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

Schema description coverage is 0%, and the description adds no information about the parameters—neighbourhood is required, crime_type has a default, but no explanation of valid values or behavior.

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 its purpose: retrieving Toronto neighborhood crime statistics and trends. It distinguishes itself from sibling tools like weather or stock data.

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, nor any context about prerequisites or limitations.

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

get_weatherB

Get current weather and 7-day forecast for any location or your current location

ParametersJSON Schema
NameRequiredDescriptionDefault
locationNo

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 bears full responsibility for behavioral traits. It does not mention read-only nature, error handling, rate limits, or any side effects. Only the output type (current weather and forecast) is hinted, but not formalized.

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 efficiently conveys the tool's purpose without extraneous information. It is front-loaded and every word adds value.

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 low complexity (one parameter, no output schema), the description provides the basic intent but omits crucial context like return format, error cases, units, or limitations, making it insufficient for reliable 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 description adds meaning beyond the schema by explaining that the location can be 'any location' or 'your current location' (null). However, it lacks format details (e.g., city name, coordinates) and examples, leaving some ambiguity.

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

Purpose5/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 weather and 7-day forecast', specifying the scope 'for any location or your current location'. It effectively distinguishes the tool from its siblings, none of which focus on weather.

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, nor any exclusions or prerequisites. The agent must infer its use from the description alone.

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

list_toronto_neighbourhoodsA

List all available Toronto neighbourhoods for crime data

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A3.7/5.0
Behavior3/5

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

With no annotations, the description carries full burden. It correctly implies a read-only operation ('list') but does not explicitly disclose safety or lack of side effects. For a simple listing tool, this is adequate but not thorough.

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, concise sentence with no wasted words. It front-loads the action and resource, making it efficient for an AI agent to parse.

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?

While the tool is simple and has an output schema (so return values need not be explained), the description lacks context about how this tool fits into workflows (e.g., its output is needed to use 'get_toronto_crime'). It is minimally complete.

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?

There are no parameters (0 params, 100% schema coverage), so the baseline is 4. The description adds no additional parameter meaning, but none is necessary.

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

Purpose5/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 the resource 'all available Toronto neighbourhoods for crime data', making the tool's purpose unambiguous. It distinguishes itself from sibling tools like 'get_toronto_crime' by focusing on neighbourhoods rather than crime data.

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 or when not to use it. It does not indicate that listing neighbourhoods is typically a prerequisite for querying crime data in 'get_toronto_crime', nor does it mention any alternatives.

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. 10 tool updatesv1.0.0
    • First observedanalyze_canadian_economy
    • First observedanalyze_url
    • First observedanalyze_youtube_url
    • First observedarxiv_search
    • First observedget_stock_overview
    • First observedget_tide_info
    • First observedget_toronto_crime
    • First observedget_weather
    • First observedlist_toronto_neighbourhoods
    • First observedweb_search

TDQS

B3.1/5.0
Disambiguation5/5

Each tool targets a distinct domain or function: Canadian economy, URL analysis, YouTube, arXiv, stocks, tides, Toronto crime, weather, neighborhoods, and web search. There is no overlap or ambiguity among them.

Naming Consistency5/5

All tool names follow a consistent verb_noun pattern (e.g., analyze_canadian_economy, get_weather, list_toronto_neighbourhoods, web_search). The naming is predictable and uniform.

Tool Count5/5

The server has 10 tools, which is a reasonable number for a general-purpose playground. Each tool covers a distinct area without being overwhelming or sparse.

Completeness4/5

The tool set covers a broad range of information retrieval tasks (web, academic, financial, weather, local data). Minor gaps exist (e.g., no image analysis, no file operations), but for a playground server, the coverage is sufficient.

Maintenance

ActivityInactive
ResponsivenessNo issues

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

  • F
    license
    Not graded
    quality
    D
    maintenance
    Provides comprehensive search capabilities including web search, content extraction, news search, academic search, and AI-powered multi-source research. Enables natural language access to web content and research through a production-ready MCP server.
    -
  • A
    license
    A
    quality
    A
    maintenance
    AI-powered deep research agent with multi-source search (DuckDuckGo, Google News, Reddit, Wikipedia), structured analysis (SWOT, comparisons, timelines, Google Trends), financial data with charts, and PDF report generation. 11 MCP tools. Multi-LLM support (DeepSeek, Gemini, GLM, OpenAI).
    5
    1
    MIT
  • A
    license
    Not graded
    quality
    B
    maintenance
    A single MCP server bundling web search, stock data, Wolfram Alpha, and YouTube transcript tools, enabling use from any MCP-capable client like Claude Desktop or custom agents.
    MIT
  • A
    license
    Not graded
    quality
    C
    maintenance
    Multi-purpose research MCP server integrating web search, deep research, web scraping, research methodology routing, and GPT Researcher report generation.
    MIT

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/GitDro/mcp_playground'

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