
Sancho Fetch
io.github.panth-netPublished by GitHub account panth-netv0.3.1Updated Oct 24, 2026
Local-first public-data MCP server that writes inspectable records and working files.
Overview
A local-first MCP server that lets an assistant fetch public data from 120+ sources and save it as inspectable files on your computer.
- What you can do
- Fetch public data from many government and open sources such as Census, World Bank, FDA, USGS and FEMA by asking in plain language, with many sources needing no API key at all. Save each fetch as a working file in a downloads folder and a faithful archive copy in a workspace cache, so repeat requests reuse cached data. Keep tables as Excel files with codes intact and maps as GeoJSON or KML, with date-prefixed filenames. Add your own data sources as custom modules that updates never overwrite, and keep playbooks for repeatable workflows. Check setup health and update or uninstall the tool through the assistant.
- When to use it
- Useful when you want an assistant to pull public datasets, such as county-level health or population figures, and hand you real spreadsheet or map files stored locally. Best for people working in a desktop AI app's code mode who prefer local files over cloud storage.
- Requirements
- Runs as a local process installed from PyPI with uv, which also provides a compatible Python; a .mcpb bundle is offered for desktop apps. First setup needs an internet connection. API keys are optional and only needed for specific providers; they go in a local .env file in the sancho-workspace folder. Desktop AI apps only; regular chats cannot reach the local install.
Installation
In SourceWeft
- Open Sancho Fetch in the dashboard and add it to a workspace.
- Enable the server for the chats that should use its tools.
Desktop only via STDIO. STDIO servers start a local process, so they need the SourceWeft desktop host.
Other MCP clients
Follow the launch instructions in the repository.
README
Sancho Fetch
Ask your AI for public data. Get real files on your computer.
The fastest way in: tell your AI
Open your AI's code mode -- Claude desktop app -> Code tab, or ChatGPT desktop app -> Codex -- pick any folder, and paste this:
Install Sancho Fetch from PyPI (
uv tool install sancho-fetch) and set it up on this computer. Ifuvisn't installed, tell me, then install it first. When you're done, tell me whether the install succeeded. Then explain in plain English, no jargon: what the .env file is, how to use it, where it is on my computer, and open it for me so I can paste API keys straight into it. Give me a few examples of data sources that need a free API key and a few examples of sources that don't need a key. Tell me where my downloaded data gets saved, and how I update Sancho later. Then run a short example data fetch using the World Bank so I can see where the data was saved. Finally tell me a few natural language examples I can tell you to fetch data so I can get a feel for how to use sancho-fetch and remind me that 1) I can use it anywhere as long as I'm in a LLM Desktop app's Code tab (e.g. ChatGPT Desktop or Claude Desktop), and 2) that I can ask AI to add new data sources by itself since sancho-fetch is built in a way that it's easily extensible (aka you can add more to it and the AI will do the heavy lifting and connect the new data source).
That's the whole install.
You do not need to download or clone this repository. The two commands the AI runs are:
Install once, use everywhere. Sancho installs once on your computer and connects to the AI apps it finds (Claude Desktop, ChatGPT/Codex, VS Code, Cursor). At the end of setup it tells you plainly which apps are ready and which just need a restart or a click.
To use Sancho, just ask for data and mention "sancho" in plain English, or type /sancho in Claude Code to feel cool.
What it does
- In your AI's Code mode you ask: "get county-level asthma rates for Ohio." You can be working in any folder -- Sancho always knows where its home folder is.
- Your AI uses Sancho to pull from 120+ public sources (Census, World Bank, FDA, USGS, FEMA, ...) and hands you a file that opens in Excel.
- Everything is saved on your computer.
Before you begin
The normal prerequisite is uv. uv installs
Sancho in isolation and can obtain a compatible Python without replacing your
computer's system Python. First setup needs an internet connection. API keys
are not required for installation or the World Bank example; provider-specific
keys can be added later.
Get started (about 2 minutes)
Install straight from PyPI.
1. Open your AI's code mode.
- Claude: Claude desktop app -> Code tab -> new session -> pick any folder where you want your data to live.
- ChatGPT: ChatGPT desktop app -> Codex -> open that folder.
2. Paste the install request from the top of this page.
The AI installs everything, shows you your first data file, and walks you through where everything lives.
3. Restart the apps Sancho asks you to restart. Setup ends with a short report; if an app needs a restart or one extra click, it says so in plain words.
NOTE: Before using, make sure to add API keys for any sources you want to use.
Many sources need no key (World Bank, USGS, FEMA, openFDA, ...). Your AI will tell you when an API key is needed. You can either:
- Open the
.envfile in thesancho-workspacefolder and paste your key there; or - Ask your AI to open the keys file for you (
sancho env open). Paste the key into the opened file, don't paste your key into the chat.
Setup normally creates .env from .env.example. If .env is missing,
sancho env open creates and opens it. To do this manually, copy
.env.example in the same folder, keep the original template, and name the
copy .env.
Both files may be hidden:
- macOS Finder: press
Cmd+Shift+.(Command + Shift + period). - Windows File Explorer: select View -> Show -> Hidden items.
@Developers, fyi Sancho is designed to read key names only, not values.
Prefer the GitHub repository, or installing without an AI app?
For contributing, custom module development, or offline installs, work from the repository folder instead. Install GitHub Desktop (free), then on this repository's page click Code -> Open with GitHub Desktop -> Clone.
Note: Avoid placing the Github folder in a folder that is within iCloud/OneDrive (e.g. Documents folder in iCloud). This causes issues with file syncing and speed.
Then double-click installers/Install Sancho.command (macOS) or
installers/Install Sancho.bat (Windows); on Linux run
bash installers/setup.sh.
- macOS blocks the first open (the installer is not notarized): System Settings -> Privacy & Security -> scroll to the blocked-file message -> Open Anyway -> open it again.
- Windows: at "Windows protected your PC", click More info -> Run anyway.
Everyday use
- In Claude Code / Codex, just ask for data. In Claude Code you can also
type
/sanchoand/sancho-updatedirectly.
After installation, use a Code session. Sancho is installed computer-wide, so you do not need to add the
sancho-fetchfolder in future sessions. In Claude Desktop, select the Code tab. In Codex, start a Code chat. Regular chats cannot access your local Sancho installation.
- There are system instructions to make Sancho return non-technical details of each data pull, so if you want these technical details returned, tell your AI:
"turn on Sancho developer mode."
- Something off? Ask your AI to run
sancho ready-- it checks your setup and reports what's wrong, without changing your setup. To actually fix problems, ask your AI to runsancho doctor --fix.
Where your files land
Every fetch writes a working file you open -- into sancho-downloads/ in the folder that you're working in -- and a faithful archive/cache copy in sancho-workspace/fetched-data/ so repeat requests reuse cached data.
Tables arrive as Excel .xlsx with codes like
01003 kept intact; maps stay GeoJSON/KML; nothing is converted in a way
that loses information. Filenames start with the date:
2026-06-08_194211_alabama-population.xlsx.
Add your own data sources
Tell your AI:
Create a Sancho module for [that API / that agency's data / this file I receive every month].
It's built under custom/, works like the built-in sources, and Sancho updates never overwrite the folder.
A good example of this is, Sancho fetches from Washington DC's and New York City's open data portals, which use a common API/open data portal format. The AI can be asked to create a module for other cities and will intelligently check on its own whether the new city uses the same format or not, and if it does, will reuse the same module code format (and otherwise, create a new one). You'd be surprised at how many cities use the same format so give it a try if you're working in a geographic regional level that is not already covered by Sancho's built-in modules.
Updates
Just ask your AI:
Update Sancho.
The AI upgrades the sancho command from PyPI (uv tool upgrade sancho-fetch)
and then migrates your workspace safely, with a backup and a rollback command.
Working from the GitHub repository instead? In GitHub Desktop: Fetch origin -> Pull origin, then tell your AI "update Sancho."
When updating, your own files (custom/, playbooks/, fetched-data/, .env,
...) are never touched.
If you want Sancho to stop mentioning new versions in chats (which it will do once every 2 weeks), simply set SANCHO_UPDATE_NUDGE=false in .env to turn it off.
Uninstalling
Same as installing: paste one request to your AI in a Code session:
Uninstall Sancho Fetch from this computer: run
sancho uninstall, thenuv tool uninstall sancho-fetch. Keep mysancho-workspaceandsancho-downloadsfolders -- that is my data and my API keys. Tell me when it's done and what was removed.
(Those two commands are the whole uninstall if you'd rather run them yourself.)
Sancho only removes what it installed: its skills and its entries in your AI apps. Anything you edited or created yourself is left alone and reported.
Your sancho-workspace/ folder (fetched data, custom modules, .env keys) and
your sancho-downloads/ files are always kept. Deleting data is a
separate, deliberate step that asks for confirmation first -- ask your AI, or
run sancho uninstall --help to see how.
Privacy Policy
Sancho runs on your computer and keeps your data there. Fetches go directly
from your machine to the public data provider you chose; API keys are read
from your local .env and sent only to that provider. Sancho has no
telemetry. Full details: docs/PRIVACY.md.
More documentation
CHANGELOG.md-- what changed in each release.README_ALL_INSTRUCTIONS.md-- full operator/AI reference.project-docs/MCP_SERVER_SETUP_CLAUDE_CHATGPT_WEB.md-- MCP setup details for desktop and web clients.project-docs/MODULE_CREATION_GUIDE.md-- how your AI builds new data modules.
Hosting your own version of Sancho
While Sancho is designed to run on your own computer, you can also host it on a server so that users can access it via web rather than needing Claude/Codex desktop apps.
The idea with hosting was primarily to support organizations hosting hands-on workshops for users who may not have the technical skills to install Sancho on their own computers.
hosting/README.md-- hosted demo endpoint for events.
For AI assistants
If you are an AI assistant, do not operate from this quick start. Read
README_ALL_INSTRUCTIONS.md, then follow
CLAUDE.md or AGENTS.md.
License
Code is licensed under MPL 2.0; documentation under CC BY 4.0 unless noted. The Sancho name, logo, and brand assets are protected separately -- see LICENSE, NOTICE, LICENSE-DOCS.md, and INTENDED_USE.md.
Source: README.md at commit 6fe3db5
Tools
0Version history
2- v0.3.1LatestSep 18, 2026
- v0.3.0Sep 16, 2026
Score
50% of the applicable checks met
How complete this listing is, computed from the registry entry, the endpoint and public sources. Not a rating of the server and not a statement that it is safe or working today: reachability is a dated check, and no installs or reviews go into the score.
- Reached in the last 30 days25 pts
Keep the endpoint answering the MCP handshake; SourceWeft probes it every 30 days.
- Auth declared10 pts
Declare the credential headers in the registry entry, or keep the endpoint answering the probe so its auth can be classified.
- Tools listed15 pts
Answer tools/list without a credential, or ship a package that starts in a sandbox without one.
- DescriptionRequired15 pts
- Logo10 pts
- Documentation15 pts
- License10 pts