Edgepedia
Server Details
Search and read Edgepedia, a free and growing encyclopedia with citations. No key.
- Status
- Healthy
- Uptime
- 100.0% over 50 days
- Last Tested
- Transport
- Streamable HTTP · MCP 2025-11-25
- URL
- Repository
- EdgePlat/edgepedia-mcp
- GitHub Stars
- 1
- Server Listing
- Edgepedia MCP Server
- ChatGPT
- –
- Claude
- –
TDQS
Scored across 5 tools
Most tools are clearly distinct: search finds matching articles, fetch reads one, related expands around one, and connect traces link paths. The main overlap is between search and resolve, since both accept a name and return article ids; resolve's confidence/alternatives framing helps, but agents could still hesitate between lookup versus entity disambiguation.
All names are lowercase single words with no mixed casing or underscores, giving a clean surface. However, four are imperative verbs (connect, fetch, resolve, search) while related is an adjective/participle, a minor deviation from an otherwise consistent verb style.
Five tools is well scoped for a read-only encyclopedia server: search, fetch, resolve, related, and connect each cover a distinct workflow. No tool feels padded or redundant.
The surface covers the core reference lifecycle: find articles, disambiguate names, read full text with citations, browse topics, find related material, and trace link chains. Minor gaps remain, such as no dedicated citation lookup or broader topic-navigation tool beyond using fetch with a topic id.
Available Tools
5 toolsconnectConnect two Edgepedia articlesARead-onlyIdempotentInspect
Find the shortest chain of in-text links from one Edgepedia article to another (at most 6 hops), with the sentence that makes each hop; pass two ids as search returns them.
| Name | Required | Description | Default |
|---|---|---|---|
| to | Yes | The target article, named the same ways. | |
| from | Yes | The starting article's id (such as "koala"), its ep… id, or its title. |
Output Schema
| Name | Required | Description |
|---|---|---|
| to | Yes | |
| from | Yes | |
| hops | No | |
| path | No | |
| text | Yes | |
| found | Yes | |
| steps | No | |
| reason | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already cover the safety profile (readOnly, idempotent, non-destructive, closed-world), so the bar is lower. The description still adds real behavior: a hard bound of at most 6 hops and the fact that each hop is returned with the sentence that justifies it, disclosing the shape of the search rather than just its existence.
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?
A single front-loaded sentence with the action and constraint stated before the input-sourcing clause. No filler, no redundancy with the title, and the flow constraint (6 hops) is not buried.
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?
An output schema exists, so return-value explanation is not required, and the description still summarizes it briefly. Combined with annotations and a fully documented schema, an agent has what it needs, though it never states what happens when no chain exists within 6 hops.
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 the baseline is 3. The description goes beyond the schema by clarifying that both arguments are ids obtained from `search`, which tells the agent where to source valid values rather than guessing at titles or slugs.
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?
Specific verb+resource: 'Find the shortest chain of in-text links from one Edgepedia article to another' states exactly what the tool does. It differentiates itself from siblings by tying its input to `search`'s output ('pass two ids as search returns them'), so an agent can distinguish it from fetch/related/resolve/search without opening schemas.
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?
Gives clear context for use: call `search` first, then pass the returned ids. It implicitly positions the tool after search in a workflow, but offers no explicit exclusions (e.g., when to prefer `related` or `resolve` instead), so it falls short of a 5.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
fetchFetch an Edgepedia articleARead-onlyIdempotentInspect
Read an encyclopedia article in full: one Edgepedia article as Markdown with its citations, by a search result's id. Returns id, title, text, url, and metadata (topic path, license, credit). A topic: id lists that topic's parent, narrower topics, and articles, 120 a page; topic:root is the top of the tree, topic:geo the geography tree. citations: false gives [n] markers instead of inline source links. Show the credit line with any text you quote.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | The id of a search result (the last part of the article's address, such as "mount-fuji", or a topic's "topic:…" id). | |
| ids | No | More ids to fetch with `id` in one call, up to 10 in all. | |
| cite | No | Add a reference in this format (csl, bibtex, ris, apa, mla, chicago, harvard). | |
| page | No | A topic only: which page of its articles, from 1. | |
| links | No | Add the articles linking here (in), the links it makes (out), or both. | |
| query | No | Only the 3 passages that best match these words, each with a `cite_url`. | |
| quote | No | A sentence from the article, or a chunk id: adds a `cite_url` that opens the page at it. | |
| chunks | No | true = the text as paragraphs with stable ids, in `chunks`. | |
| cursor | No | Where to continue, from a cut text's `next_cursor`. | |
| format | No | The text as plain text, HTML, JSON-LD, or Turtle instead of Markdown. | |
| length | No | snippet or lead for a short text; full (default) for the whole article. | |
| tables | No | true = add the article's tables as JSON and CSV. | |
| outline | No | true = add the list of the article's headings. | |
| section | No | Only this section, by its heading ("Etymology", "History"). | |
| citations | No | Default true. false = [n] markers instead of inline source links; the numbered reference list stays. | |
| links_page | No | With links "in" or "both": which 30 articles linking here, from 1. | |
| max_tokens | No | Cut the text at a section boundary to about this many tokens; pass `next_cursor` as `cursor` for the rest. |
Output Schema
| Name | Required | Description |
|---|---|---|
| id | No | |
| url | No | |
| text | No | |
| title | No | |
| results | No | With `ids`: one entry per id, in order: that fetch's answer, or { id, error: { code, message } }. |
| metadata | No | |
| moved_from | No | The id asked for, when the article has since moved; store `id` or `canonical_id` instead. |
| canonical_id | No | The article's permanent id (ep…); `fetch` takes it, and it outlives an address change. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly/idempotent/non-destructive, so the safety profile is covered; the description goes further by disclosing the return shape, that topic ids page 120 at a time, how `citations: false` changes output, and the licensing obligation to show the `credit` line. It stops short of discussing truncation/cursor behavior, which lives only in the schema.
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?
Purpose and return fields are front-loaded, then progressively more specialized behaviors. Dense and largely earned, though the middle sentences pile several distinct features (topic paging, citations, credit) into a run that could be split.
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 17 params at full schema coverage and an output schema, the description needn't enumerate returns, yet it does enough to orient the agent (Markdown body, citations, topic listing). It omits explicit when-to-use guidance relative to the four siblings, which is the remaining 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 coverage is 100%, so the baseline is 3, but the description adds real meaning: the `topic:` id convention with concrete examples (`topic:root`, `topic:geo`), the 120-per-page default, and the behavioral contract of `citations: false`. These go beyond the terse schema strings.
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 (read), resource (an Edgepedia article), scope (in full, as Markdown with citations) and ties the input to a sibling ('by a `search` result's id'). An agent can tell this apart from search/related/resolve 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 implies the workflow (get an id from `search`, then fetch it) and explains topic: ids and the citations flag, but never states when to prefer this over siblings like `related` or `resolve`, nor any exclusions. Usage is implied rather than prescribed.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
resolveResolve a name to an Edgepedia articleARead-onlyIdempotentInspect
Find which encyclopedia article a name means: Edgepedia's best match for a person, place, thing, or concept named in a text, with a confidence, whether the name is ambiguous, and the alternatives. Pass the name ("Mercury"), and optionally words from the text around it (context: "planet orbit") or a topic id the article must sit under (type). Returns result (id, title, url) and alternatives; pass an id to fetch.
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | The name as the text gives it. | |
| type | No | Only articles under this topic id (as `fetch` topic:… names it, without "topic:"). | |
| limit | No | Candidates to return, 1 to 10 (default 5). | |
| context | No | Words from the text around the name, which favor the article they fit. |
Output Schema
| Name | Required | Description |
|---|---|---|
| match | Yes | |
| query | Yes | |
| result | Yes | |
| ambiguous | Yes | |
| confidence | Yes | |
| alternatives | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly/idempotent/non-destructive (and closed-world), so the safety profile is covered. The description adds real behavioral context beyond them — that the result carries a confidence and an ambiguity flag, and that a ranked `alternatives` list comes back — which helps the agent interpret output.
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?
Dense but front-loaded: the core purpose leads, then a single sentence covers inputs and one covers output/resumption. It is slightly long with parenthetical examples, but no sentence is redundant.
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 4-param, output-schema-backed lookup tool, everything needed to call it correctly is present: required vs optional params, their interaction, and the downstream handoff to `fetch`. Return-value detail is a bonus rather than a necessity.
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 the baseline is 3. The description earns above baseline by giving concrete examples ('Mercury', `context`: "planet orbit") and by clarifying that `type` uses the same topic id that `fetch` names as `topic:…`, cross-linking the two params' semantics.
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 — resolving a name to an Edgepedia article — and immediately differentiates itself from siblings by framing the task as disambiguation (best match, confidence, ambiguity, alternatives). An agent can tell this apart from `search`, `fetch`, `connect`, or `related` without opening any 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?
Gives clear usage context: pass a name from a text, optionally with surrounding words or a topic id, and it routes downstream by saying 'pass an id to `fetch`'. It does not explicitly contrast with the sibling `search`, so the when-not-to-use case is left implicit.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
searchSearch EdgepediaARead-onlyIdempotentInspect
Search an encyclopedia for facts about a person, place, thing, event, or concept: Edgepedia, more than 500,000 articles with citations. Pass the subject's name ("Mount Fuji", "photosynthesis"), not a question; other names and misspellings match, and when no title matches, articles whose text does follow, marked match: fulltext. Returns results with id, title, url, and preview text, plus a topic: result when the query names a topic ("painters"); pass an id to fetch. limit and page reach further results.
| Name | Required | Description | Default |
|---|---|---|---|
| page | No | Which page of results, from 1. | |
| sort | No | central = the most-linked subjects first. | |
| first | No | true = only the best match. | |
| limit | No | Results a page, 1 to 30 (default 10). | |
| query | Yes | The name of a subject, or words from an article title. | |
| topic | No | Only articles under this topic id (as `fetch` topic:… names it, without "topic:"). |
Output Schema
| Name | Required | Description |
|---|---|---|
| page | No | |
| pages | No | Pages of results at this limit; pass `page` for the next. |
| results | Yes | |
| did_you_mean | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already establish read-only, idempotent, closed-world behavior, so the description's added value is in matching semantics: other names and misspellings match, and fulltext fallback results are flagged with `match: fulltext`. It also discloses that a `topic:` result may appear and that limit/page reach further results, though it does not describe ranking or result-count behavior beyond pagination.
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?
Purpose and the key query constraint are front-loaded, and every sentence carries information. The middle sentence is long and clause-heavy, packing matching behavior, return fields, topic results, and fetch handoff together, but it remains readable.
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 six parameters, full schema coverage, annotations, and an output schema, the description covers the important operational details: query shape, fuzzy/fulltext matching, pagination, topic results, and fetch handoff. The main remaining gap is the lack of guidance on choosing this tool versus the sibling resolve or related tools.
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 the baseline would be 3; the description earns more by clarifying that the query should be a subject name rather than a question and by explaining that limit and page traverse further results. The topic and sort parameters are left mostly to their schema descriptions, but the query guidance is meaningfully richer than the schema text.
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 a specific verb and resource — searching an encyclopedia for facts about a person, place, thing, event, or concept — and names Edgepedia with its scale and citation coverage. An agent can immediately distinguish this from fetch, which is explicitly mentioned as the follow-up tool for a returned id.
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 gives clear query-shape guidance (pass a subject name such as "Mount Fuji" or "photosynthesis", not a question) and explains the handoff to fetch. It does not explain when to prefer search over the sibling tools resolve or related, so it stops short of explicit alternatives/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.
4 tool updates
- Changed
connect3 fields changed- changed
Input schema / properties / from / descriptionPrevious value: -"The starting article's id (such as \"koala\")."New value: +"The starting article's id (such as \"koala\"), its ep… id, or its title." - changed
Input schema / properties / to / descriptionPrevious value: -"The target article's id."New value: +"The target article, named the same ways." - changed
Output schema / (root)Previous value: -nullNew value: +{ + "properties": { + "found": { + "type": "boolean" + }, + "from": { + "type": "string" + }, + "hops": { + "type": "integer" + }, + "path": { + "items": { + "properties": { + "id": { + "type": "string" + }, + "title": { + "type": "string" + }, + "url": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "reason": { + "type": "string" + }, + "steps": { + "items": { + "properties": { + "anchor": { + "type": [ + "string", + "null" + ] + }, + "from": { + "type": "string" + }, + "sentence": { + "type": [ + "string", + "null" + ] + }, + "to": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "text": { + "type": "string" + }, + "to": { + "type": "string" + } + }, + "required": [ + "from", + "to", + "found", + "text" + ], + "type": "object" +}
- Changed
fetch4 fields changed- added
Input schema / properties / links_pageAdded value: +{ + "description": "With links \"in\" or \"both\": which 30 articles linking here, from 1.", + "minimum": 1, + "type": "integer" +} - added
Output schema / anyOfAdded value: +[ + { + "required": [ + "id", + "title", + "text", + "url" + ] + }, + { + "required": [ + "results" + ] + } +] - added
Output schema / properties / resultsAdded value: +{ + "description": "With `ids`: one entry per id, in order: that fetch's answer, or { id, error: { code, message } }.", + "items": { + "type": "object" + }, + "type": "array" +} - removed
Output schema / requiredRemoved value: -[ - "id", - "title", - "text", - "url" -]
- Changed
related5 fields changed- added
Output schema / anyOfAdded value: +[ + { + "required": [ + "id", + "title", + "url", + "siblings", + "cousins", + "geo" + ] + }, + { + "required": [ + "id", + "title", + "url", + "by", + "cocited", + "coupled" + ] + } +] - added
Output schema / properties / byAdded value: +{ + "enum": [ + "links" + ], + "type": "string" +} - added
Output schema / properties / cocitedAdded value: +{ + "items": { + "type": "object" + }, + "type": "array" +} - added
Output schema / properties / coupledAdded value: +{ + "items": { + "type": "object" + }, + "type": "array" +} - removed
Output schema / requiredRemoved value: -[ - "id", - "title", - "url", - "siblings", - "cousins", - "geo" -]
- Added
resolve
4 tool updates
- Added
connect - Changed
fetch16 fields changed- added
Input schema / properties / chunksAdded value: +{ + "description": "true = the text as paragraphs with stable ids, in `chunks`.", + "type": "boolean" +} - added
Input schema / properties / citeAdded value: +{ + "description": "Add a reference in this format (csl, bibtex, ris, apa, mla, chicago, harvard).", + "enum": [ + "csl", + "bibtex", + "ris", + "apa", + "mla", + "chicago", + "harvard" + ], + "type": "string" +} - added
Input schema / properties / cursorAdded value: +{ + "description": "Where to continue, from a cut text's `next_cursor`.", + "type": "string" +} - added
Input schema / properties / formatAdded value: +{ + "description": "The text as plain text, HTML, JSON-LD, or Turtle instead of Markdown.", + "enum": [ + "text", + "html", + "jsonld", + "turtle" + ], + "type": "string" +} - added
Input schema / properties / idsAdded value: +{ + "description": "More ids to fetch with `id` in one call, up to 10 in all.", + "items": { + "type": "string" + }, + "type": "array" +} - added
Input schema / properties / lengthAdded value: +{ + "description": "snippet or lead for a short text; full (default) for the whole article.", + "enum": [ + "snippet", + "lead", + "full" + ], + "type": "string" +} - added
Input schema / properties / linksAdded value: +{ + "description": "Add the articles linking here (in), the links it makes (out), or both.", + "enum": [ + "in", + "out", + "both" + ], + "type": "string" +} - added
Input schema / properties / max_tokensAdded value: +{ + "description": "Cut the text at a section boundary to about this many tokens; pass `next_cursor` as `cursor` for the rest.", + "type": "integer" +} - added
Input schema / properties / outlineAdded value: +{ + "description": "true = add the list of the article's headings.", + "type": "boolean" +} - added
Input schema / properties / pageAdded value: +{ + "description": "A topic only: which page of its articles, from 1.", + "type": "integer" +} - added
Input schema / properties / queryAdded value: +{ + "description": "Only the 3 passages that best match these words, each with a `cite_url`.", + "type": "string" +} - added
Input schema / properties / quoteAdded value: +{ + "description": "A sentence from the article, or a chunk id: adds a `cite_url` that opens the page at it.", + "type": "string" +} - added
Input schema / properties / sectionAdded value: +{ + "description": "Only this section, by its heading (\"Etymology\", \"History\").", + "type": "string" +} - added
Input schema / properties / tablesAdded value: +{ + "description": "true = add the article's tables as JSON and CSV.", + "type": "boolean" +} - added
Output schema / properties / canonical_idAdded value: +{ + "description": "The article's permanent id (ep…); `fetch` takes it, and it outlives an address change.", + "type": "string" +} - added
Output schema / properties / moved_fromAdded value: +{ + "description": "The id asked for, when the article has since moved; store `id` or `canonical_id` instead.", + "type": "string" +}
- Added
related - Changed
search8 fields changed- added
Input schema / properties / firstAdded value: +{ + "description": "true = only the best match.", + "type": "boolean" +} - added
Input schema / properties / limitAdded value: +{ + "description": "Results a page, 1 to 30 (default 10).", + "maximum": 30, + "minimum": 1, + "type": "integer" +} - added
Input schema / properties / pageAdded value: +{ + "description": "Which page of results, from 1.", + "minimum": 1, + "type": "integer" +} - added
Input schema / properties / sortAdded value: +{ + "description": "central = the most-linked subjects first.", + "enum": [ + "relevance", + "central" + ], + "type": "string" +} - added
Input schema / properties / topicAdded value: +{ + "description": "Only articles under this topic id (as `fetch` topic:… names it, without \"topic:\").", + "type": "string" +} - added
Output schema / properties / pageAdded value: +{ + "type": "integer" +} - added
Output schema / properties / pagesAdded value: +{ + "description": "Pages of results at this limit; pass `page` for the next.", + "type": "integer" +} - added
Output schema / properties / results / items / properties / canonical_idAdded value: +{ + "description": "The article's permanent id (ep…); `fetch` takes it, and it outlives an address change.", + "type": "string" +}
1 tool update
- Changed
search1 field changed- changed
Output schema / properties / results / items / properties / text / descriptionPrevious value: -"The article's opening sentences, or for a topic its article count and place in the tree."New value: +"The corpus snippet when available, otherwise the article opening; for a topic its article count and place in the tree."
2 tool updates
- Changed
fetch1 field changed- changed
Input schema / properties / id / descriptionPrevious value: -"The id of a search result (the last part of the article's address, such as \"mount-fuji\")."New value: +"The id of a search result (the last part of the article's address, such as \"mount-fuji\", or a topic's \"topic:…\" id)."
- Changed
search2 fields changed- added
Output schema / properties / results / items / properties / articlesAdded value: +{ + "description": "A topic only: the articles under it.", + "type": "integer" +} - changed
Output schema / properties / results / items / properties / text / descriptionPrevious value: -"The article's opening sentences."New value: +"The article's opening sentences, or for a topic its article count and place in the tree."
2 tool updates
- First observed
fetch - First observed
search
Related MCP Connectors
Search and read Wikipedia in any language: summaries and full articles. Free, no key.
Read, search and edit Smartipedia, an open AI-native encyclopedia. No API key, no signup.
Search and read Wikipedia articles and sections, list cited references, nearby pages, and languages.
Search and read Cyber Library, a free structured cybersecurity knowledge base. Read-only, no auth.
Related MCP Servers
- AlicenseNot gradedqualityBmaintenanceEnables searching and reading Edgepedia encyclopedia articles, finding related entries, tracing shortest in-text link chains between articles, and resolving ambiguous names using context.MIT
- AlicenseAqualityCmaintenanceEnables MCP clients to search, read, create, preview, and edit Smartipedia encyclopedia articles with no API key or signup.734 npmMIT
- AlicenseNot gradedqualityBmaintenanceEnables agents to search Wikipedia and fetch full article text, lead summaries, section outlines, outgoing links, and coordinates from the public API with no signup or API key. Titles follow redirects, and unresolved pages are reported as errors instead of empty results.294 npmMIT
- AlicenseNot gradedqualityFmaintenanceEnables AI agents to search, read, and explore Wikipedia articles via tools like summaries, categories, and random articles, with no API keys required.1MIT
Glama MCP Gateway
Add one secure layer between your agents and this server.