EMAF
Powers research by searching arXiv papers and preprints, returning relevant passages with citations and flagging preprints as not peer reviewed.
Optional web search backend for research and raw search; when BRAVE_API_KEY is set, uses Brave Search instead of DuckDuckGo.
Default web search backend for research and raw search results when no Brave API key is configured.
Powers prior_art by searching GitHub repositories, quoting README evidence, and reporting stars, last push, license, and maintenance status; GITHUB_TOKEN improves limits and enables code search.
Powers prior_art by searching npm packages for existing implementations.
Powers prior_art by finding Python packages on PyPI, using name guesses and GitHub because PyPI lacks a search API.
This server does not currently have a deployable release on Glama. Follow the repository's setup instructions to install and configure it for your MCP client, including any required credentials and local dependencies.
EMAF
Enterprise Markdown Acquisition Framework
Research the web from Claude or Codex. Facts with sources, not page dumps.
Ask a question and get the relevant passages from web pages, papers and preprints, ranked and cited. Ask whether something already exists and get the open-source projects that do it, with the README line that proves it. Read any URL or PDF as clean Markdown.
A self-hosted MCP server on Cloudflare Workers. Runs on the free plan, no paid APIs.
Tools
Tool | For |
| Questions and fact-checks. Searches the web, OpenAlex and arXiv, reads the top pages, returns the best passages with sources. Preprints are flagged as not peer reviewed. |
| "Does this exist?" Searches GitHub, npm and PyPI and quotes where each README mentions the feature, with stars, last push, license and maintenance status. |
| One URL as Markdown. HTML or PDF. |
| Up to 20 URLs in one call. |
| Several pages of one site. |
| List a site's URLs from its links and sitemap. |
| Raw web search results. |
Parameters for each tool: docs/tools.md.
Related MCP server: synorive
Deploy
Needs Node.js 22+ and a Cloudflare account.
git clone https://github.com/wpowertechgit/emaf.git
cd emaf
npm install
npx wrangler login
npx wrangler deploy
npx wrangler secret put MCP_SECRET # long random string: openssl rand -hex 24Your endpoint:
https://emaf.<your-subdomain>.workers.dev/mcp/<MCP_SECRET>The secret is the password. Keep the URL private, or use OAuth instead.
Connect to Claude
Settings → Connectors → Add custom connector, paste the endpoint, leave the OAuth fields empty, save.
Optional: upload skills/research as a Claude skill. It tells Claude how to research: primary sources first, two independent sources per key claim, preprints and single sources called out.
Connect to Codex
Codex connects directly over Streamable HTTP. With OAuth configured:
codex mcp add emaf --url https://emaf.YOUR-SUBDOMAIN.workers.dev/mcp
codex mcp login emafEnter the EMAF owner password on the consent page. Run codex mcp list to check registration and /mcp inside Codex to check the connection.
For the secret URL, config.toml settings, troubleshooting and the optional research skill, see Codex setup.
Configuration
Everything is optional. Without any of it, all tools work.
Setting | Effect |
| Higher GitHub limits and code search for |
| Brave Search instead of DuckDuckGo. |
| Higher OpenAlex daily budget. |
| On by default. Converts pages on Cloudflare's side to stay within the free CPU limit, and reranks |
| KV cache for |
| OAuth sign-in instead of a secret URL. |
| Rate limit tool calls (in-memory fallback otherwise). |
|
|
Setup and free-tier limits for each: docs/configuration.md.
Limits
Workers Free allows 50 outbound requests per call. EMAF budgets for that and reads fewer pages instead of failing.
crawlstops at 40 pages.Workers Free allows 10 ms of CPU per request. With the
AIbinding, page conversion runs on Cloudflare and does not count; without it,researchuses a fast text extractor, whilescrape,crawland large PDFs can go over on big pages.No JavaScript rendering without
BROWSER. No OCR for scanned PDFs.PyPI has no search API, so
prior_artfinds Python packages by name guesses and through GitHub.Sites with strong bot protection may block requests.
Development
npm install
echo 'MCP_SECRET="dev"' > .dev.vars
npm run dev # http://127.0.0.1:8787/mcp/dev
npm testSee CONTRIBUTING.md.
License
Related MCP Connectors
Web search, fetch, extract, and research for AI agents. Markdown output + AI-synthesized answers.
Web data for agents: YouTube transcripts, screenshots, Google News, WHOIS, jobs, tech stack, more.
LLM-ready web search + instant answers + URL-to-clean-text fetch for agents and RAG.
Web search, Google SERP, page extraction to markdown and cited answers for AI agents.
Related MCP Servers
- AlicenseNot gradedqualityDmaintenanceEnables Claude Code to index and semantically search through PDFs, code, and documents with exact citations and zero hallucinations.MIT
- AlicenseNot gradedqualityBmaintenanceProvides Claude Code with local-first multimodal semantic search across documents, code, images, and video, plus multi-engine web research with active counter-evidence hunting and source-verified, extract-only briefings.4AGPL 3.0
- AlicenseNot gradedqualityBmaintenanceEnables AI agents to perform live web searches with ranked results and extracted page passages, plus clean markdown extraction of any URL.MIT
- AlicenseAqualityCmaintenanceEnables AI coding assistants to retrieve real-time web information, current documentation, APIs, and news with verified source citations.110 npmMIT