apexapi-mcp
OfficialClick on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@apexapi-mcpcheck my account balance"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
apexapi-mcp
MCP server for ApexApi — call 120+ AI models (OpenAI, Anthropic, Google, DeepSeek, Qwen…) and read the live web (scrape / crawl / structured extract) from any MCP client, with one ak- API key and one prepaid balance.
Tools
chat, list_models, get_balance, scrape_page, crawl_site, extract_structured, check_job, generate_image, generate_speech
Related MCP server: API Hub MCP — 337+ Tools
Local (stdio)
Get a key at https://apexapi.dev/keys, then add to your MCP client config:
{
"mcpServers": {
"apexapi": {
"command": "npx",
"args": ["-y", "apexapi-mcp"],
"env": { "APEXAPI_API_KEY": "ak-..." }
}
}
}Claude Code: claude mcp add apexapi -e APEXAPI_API_KEY=ak-... -- npx -y apexapi-mcp
Remote (Streamable HTTP)
Endpoint: https://api.apexapi.dev/mcp with header Authorization: Bearer ak-...
Responses use MCP Streamable HTTP framing (SSE) — clients like Claude Code handle this natively; it is not a plain-JSON REST endpoint.
Claude Code: claude mcp add --transport http apexapi https://api.apexapi.dev/mcp --header "Authorization: Bearer ak-..."
Docs
Available Tools
9 toolschatAsk an AI modelA
Send a prompt to any of the 120+ models on ApexApi (OpenAI, Anthropic, Google, DeepSeek, Qwen, Mistral…). Use list_models to discover model slugs. Billed per token from the credit balance.
| Name | Required | Description | Default |
|---|---|---|---|
| model | Yes | Model slug in maker/model form, e.g. openai/gpt-4o or anthropic/claude-fable-5 | |
| prompt | Yes | The user prompt | |
| system | No | Optional system prompt | |
| max_tokens | No | ||
| temperature | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the burden. It discloses cost with 'Billed per token from the credit balance', which is relevant context. However, it omits information about response format, rate limits, or any side effects beyond billing, leaving gaps 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two concise sentences, front-loaded with the action and scope, and includes billing and model discovery without any fluff. Every sentence serves a purpose.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With 5 parameters and no output schema, the description gives the core purpose and cost but leaves return format and usage boundaries implied. It does not describe the response structure or when to prefer other tools, making it only moderately complete for an agent.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 60%, so the baseline is 3. The description adds no extra detail about system, max_tokens, or temperature, though it does clarify 'model slugs' indirectly via list_models. The schema already covers model and prompt adequately, but the uncovered parameters remain unaddressed.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description uses a specific verb 'Send a prompt' and names the resource 'any of the 120+ models on ApexApi'. It clearly differentiates from siblings like generate_image and generate_speech by focusing on prompt-based text generation. The title 'Ask an AI model' also aligns well.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly instructs to 'Use list_models to discover model slugs', which is a useful prerequisite. It does not provide exclusions or mention alternatives like extract_structured, but the primary use case is clear and the guidance is sufficient for basic selection.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
check_jobCheck an async jobB
Poll a crawl_site or extract_structured job by id.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | ||
| kind | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations to convey safety or side effects, the description carries the full burden. It states it 'polls' a job, but does not disclose what the response contains, whether it blocks, what statuses are possible, or any rate-limit/failure behavior. This minimal transparency leaves the agent uncertain about expected outcomes.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence that conveys the core functionality without redundant words. It is front-loaded and every phrase earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool is simple, but without an output schema the description should explain what a polling response looks like (status, results, error handling). It only says 'poll' without describing the return value or any nuances like repeated polling semantics. This is a significant gap for an async job checker.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema provides parameter names and an enum for kind, but no descriptions. The description adds meaningful context by mapping kind values to specific job types (crawl_site and extract_structured), clarifying that 'id' refers to a job id. It does not fully compensate for the 0% schema coverage but provides essential linkage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's function: to poll an asynchronous job, explicitly naming the two job types (crawl_site and extract_structured). This distinguishes it from sibling tools that create or scrape, making the purpose unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies when to use it: after launching a crawl_site or extract_structured job. However, it provides no explicit guidance on when to use this over alternatives or any exclusions. Since no alternative polling tool exists, the implicit context is adequate but not fully explicit.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
crawl_siteRead a whole siteA
Crawl same-domain pages from a seed URL into markdown. Waits up to 60s; if still running, returns a job id for check_job. Billed $0.005 per page, capped by limit. Full page set is at result_url.
| Name | Required | Description | Default |
|---|---|---|---|
| url | Yes | Seed URL | |
| limit | No | Max pages (default 100) — bounds cost at limit × $0.005 |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description fully shoulders the burden of behavioral disclosure. It honestly reveals the 60-second wait, the job-id fallback for long runs, per-page billing with a cap, and the result_url for the full output. This is far beyond minimal and gives the agent accurate expectations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three sentences, front-loaded with the core purpose, followed by cost and async behavior. Every sentence earns its place—no filler or repetition.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a tool with no output schema and no annotations, the description covers all essential aspects: input (seed URL), scope (same-domain), output (markdown + result_url), cost, and long-run handling. An agent has enough information to invoke the tool and interpret results.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so baseline is 3. The description adds 'capped by limit' and cost context, but the schema already states 'Max pages (default 100) — bounds cost at limit × $0.005.' Therefore the description adds minimal incremental meaning beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description opens with 'Crawl same-domain pages from a seed URL into markdown,' a specific action on a resource that clearly distinguishes this tool from siblings like scrape_page (single page) and check_job (job status). The title 'Read a whole site' reinforces the purpose without ambiguity.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It provides clear context on when to use the tool (for whole-site crawling) and mentions async fallback via check_job if execution exceeds 60 seconds. It does not explicitly name alternatives or state when not to use it, but the context is sufficient for an agent to select it appropriately among siblings.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
extract_structuredExtract structured dataA
Ready-made structured JSON from Amazon, Walmart, Crunchbase, G2, Google Maps, or Zillow product/company/listing URLs. Billed $0.01 per record; failures free. Scrapers: amazon-product, walmart-product, crunchbase-company, g2-product, google-maps-business, zillow-property.
| Name | Required | Description | Default |
|---|---|---|---|
| url | Yes | The page URL to extract from | |
| limit | No | Max records (default 100) | |
| scraper | Yes | Which scraper to run |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It discloses billing behavior ($0.01 per record) and failure policy (failures free), which is useful. However, it omits details such as authentication requirements, rate limits, or handling of invalid/unsupported URLs beyond 'failures free'. This is partial transparency.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences, front-loaded with the core purpose, and includes only necessary details (pricing, supported scrapers). No redundant words or overly long explanations.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's moderate complexity (3 params, no output schema), the description covers the essential aspects: source platforms, pricing, failure policy, and available scrapers. It doesn't detail the exact JSON structure per scraper, but the phrase 'ready-made structured JSON' provides sufficient expectation for an agent to select and invoke the tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so baseline is 3. The description adds meaning beyond the schema by clarifying which URLs are eligible (Amazon, Walmart, etc.) and implicitly linking the 'limit' parameter to per-record billing. This helps the agent understand parameter semantics in context.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool extracts structured JSON from specific platforms (Amazon, Walmart, etc.) with a specific verb 'extract' and resource 'structured data'. It distinguishes itself from siblings like scrape_page and crawl_site by emphasizing 'ready-made' structured output from a curated list of sources.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies when to use the tool: when the URL is from one of the listed platforms and structured data is needed. It lists supported scrapers, effectively setting the inclusion criteria. However, it does not explicitly mention alternatives like scrape_page for unsupported URLs, so it lacks an explicit when-not-to-use statement.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
generate_imageGenerate an imageA
Generate an image from a text prompt. Returns a URL. Use list_models with type=image for available models and prices.
| Name | Required | Description | Default |
|---|---|---|---|
| size | No | WIDTHxHEIGHT, default 1024x1024 | |
| model | Yes | Image model slug, e.g. openai/dall-e-3 | |
| prompt | Yes |
TDQS
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 only mentions that it returns a URL, but omits important details such as whether the operation is synchronous, whether it consumes credits (given list_models mentions prices), or what happens on failure. This is a significant gap for a generation tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is exactly two sentences, front-loaded with the core function and output, followed by a useful prerequisite note. Every sentence earns its place with no redundancy or filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple 3-parameter tool with no output schema, the description covers the basics: what it does, its output format, and how to find models. However, it leaves unresolved questions about cost, synchronous vs. asynchronous behavior (especially given the check_job sibling), and error handling, making it adequate but not complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 67%, covering size and model but not prompt. The description adds meaning by explaining that the prompt is a text prompt for image generation and directs the user to list_models for available model slugs, which partially compensates for the missing prompt description. It does not add syntax or format details beyond what the schema provides.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's function with a specific verb and resource: 'Generate an image from a text prompt. Returns a URL.' This distinguishes it from siblings like generate_speech and chat, leaving no ambiguity about what the tool does.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It provides clear usage context by telling the user to 'Use list_models with type=image for available models and prices,' which is a prerequisite for using this tool correctly. However, it does not explicitly mention when not to use this tool or name alternative image generation tools, but none exist among the siblings.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
generate_speechGenerate speech (TTS)A
Text-to-speech via ElevenLabs. Returns an MP3 URL. Billed per 1,000 characters.
| Name | Required | Description | Default |
|---|---|---|---|
| input | Yes | Text to speak | |
| model | No | Audio model slug, default elevenlabs/tts/multilingual-v2 | |
| voice | No | Voice name or id; empty = model default |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Despite having no annotations, the description discloses key behavioral traits: it uses the external ElevenLabs service, returns an MP3 URL, and incurs costs per 1,000 characters. It omits latency, error handling, and authentication details, but covers the most operationally relevant aspects for a simple TTS tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three short sentences, each adding distinct value (purpose, output, cost). Information is front-loaded and there is no redundancy or filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool is simple, and the description adequately covers purpose, output, and cost. Given the lack of annotations and output schema, it could mention error cases or rate limits, but for a straightforward API call it is reasonably complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema already provides descriptions for all three parameters (input, model, voice), so the description adds no additional parameter-specific context. The billing note is related to input length but does not enrich the understanding of any parameter beyond what the schema offers.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's function as text-to-speech via ElevenLabs and its output (MP3 URL). This distinguishes it from sibling tools like generate_image, and the purpose is immediately unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage for text-to-speech needs and warns about per-character billing, but it does not explicitly state when to use this tool versus alternatives or mention any exclusions. This is implied rather than explicit.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_balanceGet credit balanceA
Current prepaid credit balance in USD. Balance is the only usage limit on ApexApi.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must convey behavior. It states the balance is 'current' and in USD, implying a read-only operation, but it does not disclose potential side effects, authentication requirements, or return format. For a simple getter, this is adequate but not rich enough to fully compensate for missing annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences, front-loaded with the core purpose and followed by one contextual remark. Every word earns its place; no redundancy or filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's simplicity (no parameters, no output schema), the description is sufficiently complete. It explains the balance's units and its role as the only usage limit, which provides meaningful context for why an agent would call this tool. Missing minor details like response shape or error cases, but those are not critical for a zero-param read-only getter.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool has zero parameters, so the description correctly omits parameter details. The baseline for 0 params is 4, and the description adds no unnecessary information, keeping the tool simple and understandable.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb ('get') with a clear resource ('prepaid credit balance in USD'), which fully defines the tool's purpose. It also adds a scoping detail ('Balance is the only usage limit') that distinguishes it from the sibling tools, which are all about different actions like chat, scraping, or image generation.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies the tool's usage (checking the balance before using other tools) but does not explicitly state when to use it versus alternatives. It mentions that balance is the only usage limit, which suggests the context, but lacks a direct 'Use this when...' statement. No exclusions or alternative tool names are provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_modelsList available modelsA
Live catalog of all ApexApi models with type, context window, and USD pricing (per 1M tokens for chat). Filter by type to keep the list short.
| Name | Required | Description | Default |
|---|---|---|---|
| type | No | Filter by model type |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Without annotations, the description provides some behavioral context: it is a 'live' catalog and includes per-token pricing specifics. However, it does not mention whether the operation is read-only, pagination behavior, or any authentication requirements, leaving gaps for a tool with no annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences, with the key purpose (live catalog of all models) front-loaded and no redundant wording. Every detail (type, context window, pricing, filter tip) earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple one-parameter list tool, the description covers the return contents (type, context window, pricing) and filter behavior. It lacks details about ordering, pagination, or response format, but the absence of an output schema and the tool's simplicity make this acceptable.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema already documents the 'type' parameter at 100% coverage. The description adds value by explaining the rationale for filtering ('keep the list short') and implying that omitting the filter returns all models, which goes beyond the schema's simple 'Filter by model type'.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool catalogs all ApexApi models, listing type, context window, and USD pricing. This is a specific verb (catalog/list) with a clear resource (all models), distinguishing it from siblings like chat or get_balance.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies when to use it (to view available models and pricing) and provides a usage tip ('Filter by type to keep the list short'). It does not explicitly name alternatives or exclusions, but no sibling tool offers a similar listing function, so the context is clear.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
scrape_pageRead a web pageA
Fetch any URL as clean, LLM-ready markdown (or html/text). Anti-bot handling is automatic. Billed per successful page ($0.002 standard, $0.008 stealth); failures are free.
| Name | Required | Description | Default |
|---|---|---|---|
| url | Yes | Absolute http(s) URL | |
| format | No | Output format, default markdown |
TDQS
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 clearly adds important behavioral traits: automatic anti-bot handling, billing per successful page, and that failures are free. This gives the agent useful context beyond the basic fetch operation, though it does not mention redirects or rate limits.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences, front-loaded with the primary action and resource. Both sentences earn their place: the first explains what the tool does and output options; the second explains billing behavior. No fluff or redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple one-URL fetch tool with two parameters and no output schema, the description covers the main aspects: purpose, output formats, anti-bot handling, and pricing. It is complete enough for an agent to understand the tool's basic scope, though it lacks details on potential failure modes (beyond 'free') or limits, which is acceptable for this simplicity.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents both parameters (url and format). The description adds no additional parameter-specific details; it only mentions output formats generally, which is already covered by the enum. Baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb 'Fetch' with a precise resource 'any URL' and clearly states the output format ('clean, LLM-ready markdown (or html/text)'). It distinguishes itself from sibling tools like crawl_site by focusing on fetching a single page rather than crawling.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage for fetching a single URL as markdown, but it does not explicitly state when to use this tool over alternatives (e.g., crawl_site for crawling multiple pages) or when not to use it. The guidance is present but implicit.
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.
9 tool updates
v0.1.1- First observed
chat - First observed
check_job - First observed
crawl_site - First observed
extract_structured - First observed
generate_image - First observed
generate_speech - First observed
get_balance - First observed
list_models - First observed
scrape_page
TDQS
Each tool targets a distinct operation: balance, chat, model catalog, single-page scraping, site crawling, structured extraction, job polling, image generation, and speech generation. Even the web-scraping trio (scrape_page, crawl_site, extract_structured) is clearly differentiated by scope and output format.
Most tools follow a clear verb_noun snake_case pattern (list_models, scrape_page, generate_image, etc.). The exception is 'chat,' which is just a verb and breaks the pattern slightly, though it is still readable.
With 9 tools, the server covers a broad but well-defined API surface. Each tool serves a distinct function without redundancy, and the count is appropriate for an API aggregator.
The core workflows are covered: balance checking, model discovery, chat, web scraping (single and multi-page), structured data extraction, job polling, image and speech generation. Missing are minor conveniences like canceling or listing jobs, but agents can work around these.
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Connectors
Connect MCP clients to 2,000+ AI models without managing provider API keys.
Discover and call 10,000+ production APIs from one MCP server. Pay-per-call billing for AI agents.
The OpenRouter for tools. One MCP connection gives any AI agent 254 hosted tools, pay per call.
471One API key for 6 AI models. Pay-per-use. MCP protocol support with web search.
Related MCP Servers
- AlicenseAqualityDmaintenanceMCP-native web scraping and search API for AI agents. Converts any URL to clean Markdown with 90% success rate, including Cloudflare-protected sites and JS SPAs. Real-time web search via Brave Search API. CAPTCHA solving built-in. 10 free scrapes/day.595MIT
- AlicenseCqualityAmaintenanceFull-stack utility API with 337+ tools including AI chat, web scraping, weather, finance, SEO, crypto, colors, readability, DNS, and more — all through a single MCP server. Pay-as-you-go credits, no API keys needed.1001Apache 2.0

Createya MCP & APIofficial
AlicenseNot gradedqualityDmaintenanceEnables AI agents and developers to generate images, videos, audio, and text using 100+ models via MCP or REST with a single API key.4MIT- AlicenseNot gradedqualityCmaintenanceEnables lead generation and web scraping through 16 MCP tools, allowing AI clients like Claude, Cursor, and Windsurf to perform scraping tasks via natural language.61MIT
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/apexapi/apexapi-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server