Agent-Native Calendar
Agent-Native Google Calendar - manage events, sync, and public booking
제작자가 쓴 설명(영어 원문)
Web pages, PDFs and documents as small, clean, cached Markdown for AI agents
이 세 가지는 절대 하나의 점수로 합치지 않아요. 의견, 측정, 인기는 서로 다른 것이니까요.
이 서버는 아직 쉬운 말로 된 요약을 쓰지 못했어요. 아래는 레지스트리에서 읽어 온 사실이에요.
쓰고 있는 AI 앱을 고른 다음 설정을 복사하세요.
BRIGHTDATA_UNLOCKER_ZONE제작자가 레지스트리에 설치 정보를 올리지 않았어요. 아래 제작자의 README를 확인하세요.
내 컴퓨터에서 실행돼요. 설치하면 AI 앱에 도구 목록이 나타나요.
누구나 볼 수 있는 정보를 점검했고, 코드는 읽지 않았어요. 해당하지 않는 항목은 개수에서 뺐어요. · 2026년 11월 8일 점검
레지스트리 이름이 GitHub 계정 fatsearch 기준으로 확인되었고, 이 계정이 저장소를 소유하고 있어요
아직 GitHub에서 이 저장소를 읽어 오지 않았어요
아직 GitHub에서 이 저장소를 읽어 오지 않았어요
내 컴퓨터에서 실행되는 서버라 인터넷 엔드포인트가 없어요
내 컴퓨터에서 실행되며, 대신 로컬 설정을 사용해요
내 컴퓨터에서 실행돼요. 도구 목록은 인터넷 엔드포인트가 있는 서버에서만 읽을 수 있어요
레지스트리에서 이 카테고리의 활성 서버 전체와 비교했어요. 스타는 게시자가 저장소를 소유한 경우에만 세요.
해당하는 기본 점검 1개 중 1개를 통과했어요. 코드는 읽지 않았어요. 키나 토큰을 넣기 전에 서버가 어떤 권한을 요구하는지 확인하고, 꼭 필요한 권한만 있는 키를 쓰세요.
레지스트리에 필수 키가 나와 있지 않아요. 다만 처음 쓸 때 로그인을 요구하는 서버도 있어요.
내 컴퓨터에서 실행돼요. AI 앱이 필요할 때 실행하고, 데이터는 제작자의 서버를 거치지 않아요(서버 자체가 온라인 서비스를 호출하는 경우는 제외).
GitHub 저장소는 마지막으로 – 변경됐고, 최신 버전(0.2.5)은 어제 레지스트리에 올라왔어요.
Claude Desktop, Claude Code, Cursor, VS Code처럼 MCP를 지원하는 앱에서 쓸 수 있어요. 내 컴퓨터에 Rust도 있어야 해요.
같은 카테고리에는: Agent-Native Calendar, Excel MCP Server, MCP Server for Excel
같은 카테고리에서 다른 제작자가 만든 서버예요. 스타 순으로 정렬했어요.
카드 보는 법:★ GitHub 스타i세 기둥: 리뷰 · 점검 · 사용 정도i업데이트 = 최신 버전을 레지스트리에 공개한 날i
Agent-Native Google Calendar - manage events, sync, and public booking
Create and edit Excel files with AI: charts, PivotTables, formulas. No Excel needed.
Excel automation for AI - Sheets, Power Query, DAX, VBA, Tables, Ranges and more. Windows only.
제작자의 저장소에서 쓰인 그대로 가져왔어요. PopNx MCP가 검토하거나 보증한 내용이 아니에요. HTML, 이미지, 스크립트는 제거했어요. 링크를 누르면 이 사이트를 벗어나요.
Reads the pages your agent's built-in fetch can't (JS pages, PDFs) through your own provider key,
kept on disk as clean Markdown, navigated by outline and ids.
same question · same answer · 81× less context
That's the point.
| Wikipedia · Rust · model input at $2 / M tokens (Claude Sonnet 5.5, 2026-10-19) | Tokens in context | Fetch | Model bill |
|---|---|---|---|
| Firecrawl | 112,517 | 1 credit | $0.23 |
| Bright Data Unlocker | 103,625 | 1 request | $0.21 |
| Oxylabs Web API | 102,609 | 1 request | $0.21 |
| Tavily Extract | 97,504 | 0.2 credit | $0.20 |
| Jina Reader | 94,415 | free | $0.19 |
| FATSEARCH | 918 | $0 | $0.002 |
Your agent gets a short outline. It reads one section when it needs depth, not the whole page.
Menus, cookie banners, navigation, footer links, tracking scripts: gone.
Prices, dates, numbers: kept (loss guard counts every one) .
[!TIP]
The "free" fetch costs ~100× more at the model. And it stays in context, every turn after.
fats setup opens a one-time key form on 127.0.0.1, behind a random token, for 30 minutes.
You paste the key there in your browser, so it stays out of the chat, the model's context and the agent's logs.
The form refuses a POST from another origin; the key is checked live, saved with mode 0600, sent only to its provider.
$ fats setup decodo
= setup decodo · waiting for the key at http://127.0.0.1:59802/k/e0c8baba7a5b058947f4fdab97dabb05/decodo · 30 min · $0 tell the user (never ask for the key in chat):
then: fats setup (when the user says done; end your turn, do not poll · checks it, $0) link dead (30 min passed)? run fats setup decodo again and give the user the new line 3
fats setup shows a form still waiting (! form_waiting decodo · 23 min left · ) or one whose time ran out (! form_expired decodo · the link the user got is dead → fats setup decodo · new link, same 3 steps). Over SSH (SSH_CONNECTION or SSH_TTY set) one more line says how to paste the key in a terminal there.
fats tries plain HTTP first (free). If the page is a JS shell, a captcha, or a wall, it climbs to your providers: cheapest first, hedged, with cost tracking on every call.
$ fats https://www.nytimes.com/ dry:true
nytimes.com/ fetch plain → oxy (after a captcha) → bd ∥ oxyjs after 5s → new u1 · up to $0.0040
$ fats stats u1 rust-lang.org · Rust Programming Language · plain 230ms $0.0000 · 1.2ktok u2 en.wikipedia.org · Rust (programming language… · plain 558ms $0.0000 · 40.9ktok
fats stats is the marketing: real numbers, not claims.
38 hard pages social · news · shops · travel · classifieds · search · one run each
| answer in the returned text, within | 1 s | 10 s | 20 s | 60 s |
|---|---|---|---|---|
| FATSEARCH 0.2.0 2026-10-21 | 12 | 19 | 19 | 35 /38 |
| Firecrawl 2026-10-16 | 0 | 22 | 24 | 24 |
| Tavily 2026-10-16 | 9 | 17 | 18 | 19 |
FATSEARCH reads more of the hard pages; Firecrawl and Tavily are faster on the pages they do read (same pages, medians: 23.7 s vs 4.9 s, 23.7 s vs 1.0 s). Readers ran on different days. Method and every row → · the table above: one page, six readers →
Tested in agents FATSEARCH 0.1.3 · Claude Code 2.1.280, one run each, 2026-10-19
| 1 · INSTALL | 2 · KEYS (optional) | 3 · PLUG IN | |:-:|:-:|:-:| | brew install fatsearch/tap/fatsearch | fats setup | claude mcp add --scope user fats -- fats mcp |
or curl -fsSL https://fatsearch.com/install.sh | sh · Windows: npm i -g fatsearch · cargo install --locked fatsearch · every host →
[!NOTE]
The package is
fatsearch; the command isfats(likeripgrep→rg). Homebrew, npm and the install
script also add
fatsearchas a second name for it;cargo installadds onlyfats.
No account needed. Without a provider key,
fatsreads what a plain request gets; web search needs an Oxylabs or Bright Data key.
With any one key (Oxylabs, Bright Data or Decodo) it renders and unblocks pages through that provider.
You, at a terminal: run fats setup. It is a menu (↑↓ Enter): the free fetch and each provider with its state, then Settings (agent connection, cache, stats, telemetry). Pick a provider, paste its key (shown as • and a count), and fats checks it live before it saves it. fats setup oxy jumps straight to one (also bd, decodo, gh).
Your agent, or no terminal: the agent runs fats setup oxy (or bd, decodo, gh). It prints the provider's dashboard link and a one-time form on 127.0.0.1, open for 30 minutes. The agent gives you the URL; you paste the key into the form in your browser, never into the chat (what it prints). Then the agent runs fats setup to check it ($0).
Keys go to auth.json in the key dir (mode 0600) and are sent only to their provider. `auth.json` is the one key source: fats never sends a key from the environment, so the key you saved is the key every call uses (fats shows each one's last 4 characters: keys oxy …6XBR · bd none · decodo none · gh none · auth.json). On a machine without a browser (CI, SSH), pipe the key in: printf %s "$KEY" | fats setup oxy checks it and saves it. Keys already exported: run fats setup import-env once: it checks them, copies them in where no key is saved, and never replaces a saved one. Replacing a key keeps the old file as auth.json.bak (0600).
| Provider | Key | Page, no JS | Page, rendered | Web search |
|---|---|---|---|---|
| free (plain HTTP, your IP) | none | $0 | — | — |
| Oxylabs Web API | fats setup oxy (import: OXYLABS_WEB_API_KEY) | $0.0010 | $0.0015 | $0.0010 |
| Bright Data Web Unlocker | fats setup bd (import: BRIGHTDATA_API_KEY; zone BRIGHTDATA_UNLOCKER_ZONE) | — | $0.0015 | $0.0015 |
| Decodo Web Data API | fats setup decodo (import: DECODO_AUTH_TOKEN) | $0.0010 | $0.0015 | — |
GitHub (fats gh) | fats setup gh copies the gh CLI's token (import: GH_TOKEN) | $0 | — | — |
List prices per page, the ones dry:true and fats stats use. Oxylabs and Bright Data spend can be checked with fats account; Decodo has no usage read for this key, so its $ is the list price, never reconciled.
Turn one off without losing its key: fats setup oxy off, back with fats setup oxy on.
The free fetch is your own connection: one request per page from your IP, at most one start per site per second; a page waits its turn rather than buying a provider call. Providers use their own IPs and have no pace. fats setup free off sends every page to a provider instead, so every page costs.
One tool. One string. Same commands.
fats setup mcp claude # or codex, cursor: fats adds itself
claude mcp add --scope user fats -- fats mcp # Claude Code codex mcp add fats -- fats mcp # Codex {"mcpServers": {"fats": {"command": "fats", "args": ["mcp"]}}} # Cursor, Desktop, …
The tool is fats(cmd) and its card is ~60 tokens. An agent that knows fats u1#3 knows the whole tool.
MCP Registry: mcp-name: io.github.fatsearch/fats
| Command | Does |
|---|---|
fats | fetch → clean → outline, cached as u1 |
fats u1#3 | read section 3 |
fats u1 price | filter inside the page |
fats u1 links · fats l4 | numbered links · follow one |
fats rust async runtime | web search → results as ids |
fats gh rust markdown | GitHub repos by stars |
fats ./report.pdf | local file, one section per page |
fats stats | every fetch: provider, ms, cost, tokens |
… dry:true | what would run, what it would cost |
mods limit:20 country:de js:true wait:30 fresh:true · one screen of all of it: fats help · how to use it well: fats guide
The agent skill is versioned in this repo (skills/fatsearch/SKILL.md): how to read pages without flooding context, and how to install, connect and verify fats when it is missing.
npx skills add fatsearch/fatsearch # Agent Skills standard: Claude Code, Codex, Cursor, Copilot, Gemini CLI, …
gh skill install fatsearch/fatsearch # the same through GitHub CLI ≥ 2.90
An agent without either CLI reads it pinned to a release: https://raw.githubusercontent.com/fatsearch/fatsearch/v0.2.5/skills/fatsearch/SKILL.md. That way the agent sees versioned text it can review, and nothing it runs comes from a website.
Docs as plain Markdown for agents: fatsearch.com/llms.txt.
FATSEARCH shares anonymous usage stats so we can fix what breaks. It never shares what you read or search.
See exactly what's sent with fats telemetry show. Turn it off in `fats setup → Sett
앞부분만 보여 드려요. 나머지는 저장소에서 읽어 보세요