upAPI
Server Details
All public upAPI operations as MCP tools: web scraping, search, screenshots, PDF, OCR and more.
- Status
- Healthy
- Uptime
- 20.0% over 61 days
- OAuth
- Works in Glama
- Last Tested
- Transport
- Streamable HTTP · MCP 2025-11-25
- URL
- Repository
- DevinoSolutions/upapi-mcp
- GitHub Stars
- 0
- Server Listing
- @upapi/mcp
TDQS
Scored across 5 tools
The three operation-specific tools (github_repo_get, web_search_post, wikipedia_article_get) overlap with the generic call_op, which can run any operation by slug. While the specific tools are clearly named and described, an agent may be unsure whether to use them or call_op for the same operations, creating mild ambiguity.
Names mix two conventions: verb_noun for meta tools (call_op, search_ops) and noun_noun_verb for operation wrappers (github_repo_get, web_search_post, wikipedia_article_get). All are snake_case and readable, but the split pattern reduces predictability.
Five tools is reasonable for a gateway server exposing an API marketplace. The two meta tools are essential, and the three specific operations serve as shortcuts, though they are somewhat redundant given call_op.
The core discover-then-call workflow is covered by search_ops and call_op, and the three specific operations are examples. Minor gaps exist, such as no direct way to list all operations or fetch operation details by slug without a search, but these are workable.
Available Tools
5 toolscall_opRun an upAPI operationAInspect
Run one upAPI operation by slug. Discover slugs and their parameters with search_ops first. Costs the operation's own quota units per call (1 for most, more for search/browser-backed ones) — the exact figure is in the search result. Failures come back as a tool error carrying upAPI's error code, not as a broken session.
| Name | Required | Description | Default |
|---|---|---|---|
| slug | Yes | Operation slug exactly as `search_ops` returned it, e.g. "github-repo.get". | |
| input | No | The operation's own arguments, matching the parameters `search_ops` listed for it. Omit for an operation that takes none. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With annotations covering the safety profile (readOnlyHint=false, openWorldHint=true, destructiveHint=false, idempotentHint=false), the description still adds non-obvious behavior: per-call quota cost that varies by operation type, where to find the exact figure, and that failures surface as a tool error with upAPI's error code rather than breaking the session. It does not address idempotency or auth, so it is strong but not exhaustive.
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?
It is front-loaded with the core action, followed by the prerequisite, cost, and error semantics, with no filler sentences. The quota sentence is somewhat dense but each clause carries distinct information, so it earns its length.
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 dispatcher tool with no output schema and a free-form nested `input` object, the description covers the important unknowns an agent faces: how to find valid slugs, that cost varies, and how failures are surfaced. It does not describe the shape of a successful result, though the open-world variant operations make that largely infeasible anyway.
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 slug and input parameters are already fully documented in the schema (including the example slug format and the "omit for an operation that takes none" rule). The description reinforces the linkage to `search_ops` output but adds no syntax or format detail beyond the schema, which is the expected baseline.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
"Run one upAPI operation by slug" states a specific verb and resource, and it explicitly distinguishes itself from the sibling `search_ops`, which the agent needs to call first. An agent can tell what this tool is for without opening the schema.
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 names the prerequisite explicitly: discover slugs and their parameters with `search_ops` first, so the agent knows the correct ordering across siblings. It stops short of stating when-not to use this tool (e.g., prefer a dedicated sibling like github_repo_get when one exists), so it is clear context rather than full routing guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
github_repo_getGet GitHub RepositoryARead-onlyIdempotentInspect
Fetch metadata (stars, forks, topics, license, dates) for a public GitHub repository via the REST API.
upAPI operation github-repo.get (Developer Tools). Costs 1 unit of monthly quota per call.
| Name | Required | Description | Default |
|---|---|---|---|
| repo | Yes | Repo name | |
| owner | Yes | Repo owner (user or org) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly, idempotent, openWorld and non-destructive, so the safety profile is covered. The description adds genuine value beyond that by disclosing the transport (REST API), the public-only constraint, and the per-call quota cost, which is a real behavioral/cost trait an agent should weigh.
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 core purpose is front-loaded in one tight sentence and nothing is wasted. The secondary 'upAPI operation `github-repo.get` (Developer Tools)' fragment reads as vendor boilerplate that adds little for a tool-selection decision.
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 no output schema, the description compensates by naming the returned metadata fields, and it covers both inputs and the quota cost. It stops short of describing error behavior for nonexistent or private repositories, which is the main remaining gap for a read-only fetch 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 description coverage is 100% with only two required params (owner, repo), both clearly documented in the schema itself. The description adds no syntax, format, or edge-case meaning for these parameters, so the baseline 3 applies.
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?
States a specific verb and resource ('Fetch metadata ... for a public GitHub repository') and even enumerates the returned fields (stars, forks, topics, license, dates). The 'public' qualifier usefully bounds scope, though it never explicitly contrasts itself with the unrelated siblings (call_op, search_ops, web_search_post, wikipedia_article_get).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no statement of when to pick this tool over an alternative, nor any prerequisite guidance beyond the implicit 'public repo' limitation. The quota note ('Costs 1 unit of monthly quota per call') is operational metadata, not usage guidance, so the agent must infer context entirely.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
search_opsSearch upAPI operationsARead-onlyIdempotentInspect
Find upAPI operations to call. upAPI is an API marketplace: 99 operations across 11 categories (Communication, Data, Developer Tools, Finance, Maps, Media, SEO tools, Search, Social Media, Tools, Utility) — web search, SERP, dev-tool and package lookups, geo/finance/weather data, page and sitemap parsing. Returns each match with its slug, what it does, its parameters, and what one call costs in quota units. Run one with call_op.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Maximum operations to return. Defaults to 10. | |
| query | Yes | What you want to do, in plain words — e.g. "search the web", "github repository stats", "convert currency". Pass an empty string to browse everything. | |
| category | No | Restrict to one catalog category, e.g. "Search", "Developer Tools", "Data". Case-insensitive. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly/idempotent/non-destructive/openWorld=false, so the safety profile is covered. The description adds genuinely useful behavior beyond that: the shape of each result (slug, description, parameters, quota-unit cost per call), which matters because no output schema exists. No mention of rate limits or auth requirements, keeping it short of a 5.
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?
Front-loaded and dense with no filler; the purpose and the call_op handoff appear immediately. The long parenthetical category list is the only mild drag, but it carries real information rather than padding.
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 no output schema, the description compensates by describing exactly what a match contains, and it bounds the search space with catalog size and categories. An agent has everything needed to call this and interpret the result.
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 query, category, and limit are already fully documented, and the baseline is 3. The description does add marginal value by enumerating all 11 valid category values (the schema only gives three examples), but adds nothing for query syntax or limit behavior beyond what the schema states.
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?
States a specific verb and resource (find upAPI operations), quantifies the catalog (99 operations across 11 named categories with example domains), and explicitly distinguishes itself from the sibling call_op, which executes rather than searches.
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?
Names the sibling and the workflow: find operations here, then 'Run one with `call_op`.' That is clear routing context, though it never states an explicit when-not case (e.g., when to go straight to call_op or to use web_search_post for generic web queries).
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
web_search_postWeb SearchARead-onlyIdempotentInspect
Search the web and get structured results (titles, URLs, snippets). DuckDuckGo-backed — no browser, no CAPTCHA, fast.
upAPI operation web-search.post (Search). Costs 1 unit of monthly quota per call.
| Name | Required | Description | Default |
|---|---|---|---|
| query | Yes | Search query | |
| region | No | Region code (wt-wt=global, us-en, uk-en, etc) | wt-wt |
| maxResults | No | Max results to return |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, openWorldHint and non-destructive behavior, so the safety profile is covered. The description adds genuinely new operational context: the DuckDuckGo backend, the absence of browser/CAPTCHA overhead, and a per-call quota cost of 1 unit — the last being exactly the kind of rate/cost disclosure annotations cannot convey.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two compact sentences with zero filler; the primary capability and its return shape are front-loaded before the backend/quota note. Every clause 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?
With no output schema, the description usefully characterizes the return payload (titles, URLs, snippets) and discloses the quota cost, which covers most of what an agent needs. It stops short of describing result ordering, pagination, or failure behavior, leaving a minor gap.
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% and all three parameters (query, region, maxResults) are documented in-schema with defaults and bounds. The description adds no syntax, format, or constraint detail beyond that, so the baseline 3 applies.
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?
States a specific verb+resource ('Search the web') and names the return shape ('titles, URLs, snippets'), which is more than a restated name. It does not, however, distinguish itself from the sibling search_ops, which an agent could easily confuse with this tool.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives context ('DuckDuckGo-backed — no browser, no CAPTCHA, fast') that implies when this is convenient, but never states when to use it versus siblings like search_ops or wikipedia_article_get, nor any exclusions. Usage is implied rather than directed.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
wikipedia_article_getGet Wikipedia Article SummaryARead-onlyIdempotentInspect
Fetch a Wikipedia article summary (description + extract + thumbnail + coordinates) from any supported language via the public REST API.
upAPI operation wikipedia-article.get (Data). Costs 1 unit of monthly quota per call.
| Name | Required | Description | Default |
|---|---|---|---|
| title | Yes | Article title, URL-style slug, or free-form text (e.g. "Albert Einstein") | |
| language | No | Wikipedia language code | en |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already cover safety (readOnly, idempotent, openWorld, non-destructive), so the bar is lower, and the description adds real context beyond them: it is a public REST call and consumes 1 unit of monthly quota per invocation, which is a material operational constraint. It stops short of describing failure modes (missing article, unsupported language) or throttling.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two compact sentences with the core capability front-loaded, followed by the cost note. The internal operation identifier ('wikipedia-article.get') is arguably noise for an agent, but there is no wasted prose.
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 no output schema, the description usefully enumerates the returned fields, and the schema plus annotations cover inputs and safety. The only gap is the absence of guidance on error/empty-result behavior for a two-param lookup tool, which is minor given the low complexity.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so both parameters are already documented in the schema, and the baseline is 3. The description adds only a light hint that language is constrained to 'supported' languages, but contributes no syntax or format detail beyond what the schema supplies.
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?
States a specific verb ('Fetch') and resource ('Wikipedia article summary') and enumerates exactly what the response contains (description + extract + thumbnail + coordinates), which no structured field provides. This is clearly distinguishable from siblings like github_repo_get or web_search_post, which target different resources.
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?
Usage is implied by the tool's obvious subject matter (retrieve a Wikipedia summary), and the quota cost note gives a decision cue for high-volume callers. However, it never states when to prefer this over alternatives such as web_search_post for factual lookups, nor any exclusions.
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.
5 tool updates
- First observed
call_op - First observed
github_repo_get - First observed
search_ops - First observed
web_search_post - First observed
wikipedia_article_get
Publisher details
- Operator
- Devino Solutions
- Operator website
- https://devino.ca
- Vendor relationship
- First-party
- Documentation
- https://upapi.io/docs/mcp
- Trust center
- Not available
- Restrictions
- Requires a upAPI account. Sign in with OAuth when your client asks.
Related MCP Connectors
17 data tools in one MCP server, run on Apify: Google Shopping, Flights, Hotels, News, Images, Videos, Ads Transparency, Jobs and Trends; YouTube transcripts; AI visibility checks; Google Maps leads; App Store and Google Play reviews. Pay per result. Sign in with Apify (OAuth) or an API token.
MCP tools for AI agents: render URLs to image/PDF, check link health, convert HTML/CSV/JSON.
Web scraping, extraction and search for AI agents. Hosted MCP with workspace API keys.
Web MCP: scrape/crawl sites, web search, brand assets, app stores, YouTube, Reddit, Hacker News.
Related MCP Servers
- AlicenseNot gradedqualityBmaintenanceExposes web search, site mapping, scraping, crawling, schema-validated structured extraction, and stateful Playwright browser interaction as MCP tools, routing every call through the same authenticated REST gateway used by the platform's HTTP clients.1MIT

Crawlora MCPofficial
AlicenseCqualityAmaintenanceHosted MCP server for 3,475 structured public web-data tools across 468 platform groups, returning clean JSON for search, maps, commerce, social, and finance.2500231 npm1MIT- AlicenseNot gradedqualityCmaintenanceProvides bounded API tools for web page rendering, document extraction, B2B enrichment, local business search, and more via MCP protocol.MIT
- FlicenseNot gradedqualityDmaintenanceProvides a versatile set of utility tools for LLMs, including text processing, web fetching, and search capabilities, all accessible via MCP.-
Glama MCP Gateway
Add one secure layer between your agents and this server.