rovecode 0.4.0-beta.2 → 0.4.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +67 -69
- package/THIRD_PARTY_NOTICES.md +0 -44
- package/bin/rovecode.ts +21 -0
- package/package.json +16 -37
- package/src/account/keys.ts +97 -0
- package/src/account/login.ts +158 -0
- package/src/account/provision.ts +47 -0
- package/src/account/store.ts +63 -0
- package/src/acp/server.ts +373 -0
- package/src/cli/account-cmd.ts +116 -0
- package/src/cli/connect.ts +244 -0
- package/src/cli/context-cmd.ts +199 -0
- package/src/cli/dispatch.ts +109 -0
- package/src/cli/doctor.ts +324 -0
- package/src/cli/export.ts +278 -0
- package/src/cli/help.ts +240 -0
- package/src/cli/is-tui-invocation.ts +8 -0
- package/src/cli/main.ts +599 -0
- package/src/cli/market-cmd.ts +658 -0
- package/src/cli/mcp-market-cmd.ts +299 -0
- package/src/cli/output.ts +382 -0
- package/src/cli/repl.ts +172 -0
- package/src/cli/resume.ts +32 -0
- package/src/cli/run-limits.ts +78 -0
- package/src/cli/runtime.ts +792 -0
- package/src/cli/setup.ts +187 -0
- package/src/cli/update-cmd.ts +78 -0
- package/src/cli/workflow-cmd.ts +100 -0
- package/src/coding/checkpoints.ts +270 -0
- package/src/coding/diff.ts +136 -0
- package/src/coding/files.ts +339 -0
- package/src/coding/hashline.ts +319 -0
- package/src/coding/lsp.ts +406 -0
- package/src/coding/repomap-cache.ts +99 -0
- package/src/coding/repomap-files.ts +110 -0
- package/src/coding/repomap.ts +392 -0
- package/src/core/compaction.ts +399 -0
- package/src/core/config.ts +289 -0
- package/src/core/context-report.ts +228 -0
- package/src/core/context.ts +60 -0
- package/src/core/count-remote.ts +107 -0
- package/src/core/execpolicy-rules.ts +196 -0
- package/src/core/execpolicy.ts +385 -0
- package/src/core/executor.ts +397 -0
- package/src/core/guardrails.ts +400 -0
- package/src/core/hooks.ts +398 -0
- package/src/core/images.ts +230 -0
- package/src/core/intro.ts +236 -0
- package/src/core/loop.ts +621 -0
- package/src/core/modes.ts +372 -0
- package/src/core/orchestrator.ts +207 -0
- package/src/core/reflection.ts +165 -0
- package/src/core/sandbox-config.ts +167 -0
- package/src/core/session-images.ts +73 -0
- package/src/core/session.ts +398 -0
- package/src/core/settings.ts +98 -0
- package/src/core/stuck-detector.ts +273 -0
- package/src/core/tasks.ts +374 -0
- package/src/core/token-scale.ts +108 -0
- package/src/core/tool-output-budget.ts +166 -0
- package/src/core/tools.ts +288 -0
- package/src/core/types.ts +330 -0
- package/src/core/update-check.ts +171 -0
- package/src/core/update.ts +158 -0
- package/src/core/usage.ts +204 -0
- package/src/core/validate.ts +121 -0
- package/src/core/verify-gate.ts +159 -0
- package/src/core/verify.ts +237 -0
- package/src/core/voice.ts +158 -0
- package/src/core/win-job.ts +183 -0
- package/src/design/audit.ts +797 -0
- package/src/design/direction.ts +190 -0
- package/src/design/rules.ts +157 -0
- package/src/eval/bench.ts +150 -0
- package/src/eval/gauntlet-runner.ts +218 -0
- package/src/eval/gauntlet.ts +226 -0
- package/src/eval/grader.ts +186 -0
- package/src/eval/record.ts +202 -0
- package/src/eval/redact.ts +141 -0
- package/src/eval/replay.ts +147 -0
- package/src/eval/trajectory.ts +373 -0
- package/src/index.ts +17 -0
- package/src/market/catalogs/mcp-docs.json +111 -0
- package/src/market/catalogs/plugins.json +111 -0
- package/src/market/catalogs/skills.json +478 -0
- package/src/market/clone.ts +72 -0
- package/src/market/context-cost.ts +121 -0
- package/src/market/digest.ts +106 -0
- package/src/market/index.ts +22 -0
- package/src/market/install.ts +578 -0
- package/src/market/manifest.ts +187 -0
- package/src/market/prereq.ts +145 -0
- package/src/market/registry.ts +363 -0
- package/src/market/resolve.ts +111 -0
- package/src/market/types.ts +236 -0
- package/src/market/validate.ts +227 -0
- package/src/mcp/client.ts +431 -0
- package/src/mcp/config.ts +239 -0
- package/src/mcp/local-package.ts +211 -0
- package/src/mcp/market-catalog.ts +84 -0
- package/src/mcp/market-install.ts +289 -0
- package/src/mcp/market.ts +0 -0
- package/src/mcp/tools.ts +131 -0
- package/src/mcp/trust.ts +49 -0
- package/src/memory/blocks.ts +175 -0
- package/src/memory/recall.ts +355 -0
- package/src/memory/store.ts +105 -0
- package/src/memory/tools.ts +99 -0
- package/src/plugins/cli.ts +123 -0
- package/src/plugins/discover.ts +108 -0
- package/src/plugins/index.ts +50 -0
- package/src/plugins/init.ts +140 -0
- package/src/plugins/install.ts +184 -0
- package/src/plugins/load.ts +149 -0
- package/src/plugins/manifest.ts +106 -0
- package/src/plugins/state.ts +83 -0
- package/src/providers/auth.ts +293 -0
- package/src/providers/cache.ts +223 -0
- package/src/providers/catalog-local.ts +160 -0
- package/src/providers/catalog.ts +408 -0
- package/src/providers/middleware-context.ts +86 -0
- package/src/providers/middleware.ts +373 -0
- package/src/providers/profile-glm53.ts +111 -0
- package/src/providers/profile-sonnet5-persona.ts +65 -0
- package/src/providers/profile-sonnet5-voice.ts +23 -0
- package/src/providers/profiles.ts +156 -0
- package/src/providers/provider-config.ts +311 -0
- package/src/providers/registry.ts +302 -0
- package/src/providers/response-validation.ts +80 -0
- package/src/providers/retry.ts +234 -0
- package/src/providers/router.ts +294 -0
- package/src/providers/sse.ts +26 -0
- package/src/providers/stream-errors.ts +117 -0
- package/src/providers/stream.ts +569 -0
- package/src/providers/thinking.ts +189 -0
- package/src/providers/wire-messages.ts +129 -0
- package/src/sdk/client.ts +225 -0
- package/src/sdk/index.ts +3 -0
- package/src/server/dashboard.ts +144 -0
- package/src/server/http.ts +343 -0
- package/src/server/openapi.ts +246 -0
- package/src/sextant/card-hits.ts +102 -0
- package/src/sextant/card-keys.ts +55 -0
- package/src/sextant/context-source.ts +157 -0
- package/src/sextant/draw-agents.ts +273 -0
- package/src/sextant/draw-code.ts +388 -0
- package/src/sextant/draw-context.ts +222 -0
- package/src/sextant/draw-frame.ts +164 -0
- package/src/sextant/draw-market.ts +573 -0
- package/src/sextant/draw-messages.ts +386 -0
- package/src/sextant/draw-pet.ts +230 -0
- package/src/sextant/draw-plan.ts +159 -0
- package/src/sextant/draw-tabs.ts +85 -0
- package/src/sextant/draw-util.ts +65 -0
- package/src/sextant/engine.ts +230 -0
- package/src/sextant/frame-hits.ts +25 -0
- package/src/sextant/frame.ts +101 -0
- package/src/sextant/git-status.ts +197 -0
- package/src/sextant/grid.ts +59 -0
- package/src/sextant/input.ts +119 -0
- package/src/sextant/keys.ts +488 -0
- package/src/sextant/layout.ts +86 -0
- package/src/sextant/local-commands.ts +156 -0
- package/src/sextant/market-source.ts +287 -0
- package/src/sextant/mentions.ts +141 -0
- package/src/sextant/message-hits.ts +26 -0
- package/src/sextant/model.ts +387 -0
- package/src/sextant/overlays.ts +451 -0
- package/src/sextant/panel-hits.ts +38 -0
- package/src/sextant/pet.ts +399 -0
- package/src/sextant/screen.ts +324 -0
- package/src/sextant/scroll-hits.ts +66 -0
- package/src/sextant/scrollbar.ts +82 -0
- package/src/sextant/selection.ts +123 -0
- package/src/sextant/sextant-bridge.ts +174 -0
- package/src/sextant/sextant-cards.ts +142 -0
- package/src/sextant/sextant-diff-base.ts +63 -0
- package/src/sextant/sextant-files.ts +154 -0
- package/src/sextant/sextant-frame-loop.ts +314 -0
- package/src/sextant/sextant-renderer.ts +478 -0
- package/src/sextant/sextant-repo.ts +131 -0
- package/src/sextant/theme.ts +66 -0
- package/src/sextant/tool-rows.ts +189 -0
- package/src/sextant/types.ts +473 -0
- package/src/skills/index.ts +306 -0
- package/src/skills/tools.ts +69 -0
- package/src/skills/versioned.ts +227 -0
- package/src/telemetry/otel.ts +353 -0
- package/src/telemetry/otlp.ts +68 -0
- package/src/tools/ask-user.ts +156 -0
- package/src/tools/design.ts +151 -0
- package/src/tools/evalcell.ts +338 -0
- package/src/tools/html-text.ts +139 -0
- package/src/tools/provider.ts +149 -0
- package/src/tools/task.ts +216 -0
- package/src/tools/todo.ts +320 -0
- package/src/tools/webfetch.ts +331 -0
- package/src/tui/app.ts +608 -0
- package/src/tui/attach.ts +127 -0
- package/src/tui/checkpoints-cmd.ts +70 -0
- package/src/tui/clipboard-image.ts +81 -0
- package/src/tui/commands.ts +277 -0
- package/src/tui/cost.ts +108 -0
- package/src/tui/info-cmd.ts +144 -0
- package/src/tui/mcp-cmd.ts +128 -0
- package/src/tui/modes-cmd.ts +45 -0
- package/src/tui/overlays.ts +97 -0
- package/src/tui/pi-renderer.ts +424 -0
- package/src/tui/providers-cmd.ts +366 -0
- package/src/tui/renderer.ts +101 -0
- package/src/tui/replay-marker.ts +29 -0
- package/src/tui/session-cmd.ts +146 -0
- package/src/tui/sextant-attach.ts +68 -0
- package/src/tui/sextant-io.ts +184 -0
- package/src/tui/sextant-smoke.ts +110 -0
- package/src/tui/smoke.ts +72 -0
- package/src/tui/theme.ts +59 -0
- package/src/tui/todo-label.ts +7 -0
- package/src/workflow/engine.ts +266 -0
- package/tsconfig.json +30 -0
- package/vendor/pi-tui/LICENSE +21 -0
- package/vendor/pi-tui/PATCHES.md +12 -0
- package/vendor/pi-tui/PROVENANCE.md +12 -0
- package/vendor/pi-tui/README.upstream.md +854 -0
- package/vendor/pi-tui/native/win32/prebuilds/win32-arm64/win32-console-mode.node +0 -0
- package/vendor/pi-tui/native/win32/prebuilds/win32-x64/win32-console-mode.node +0 -0
- package/vendor/pi-tui/src/alt-screen-search.ts +158 -0
- package/vendor/pi-tui/src/autocomplete.ts +827 -0
- package/vendor/pi-tui/src/components/alt-screen-flash.ts +52 -0
- package/vendor/pi-tui/src/components/box.ts +138 -0
- package/vendor/pi-tui/src/components/cancellable-loader.ts +41 -0
- package/vendor/pi-tui/src/components/editor.ts +2364 -0
- package/vendor/pi-tui/src/components/h-stack.ts +45 -0
- package/vendor/pi-tui/src/components/image.ts +128 -0
- package/vendor/pi-tui/src/components/input.ts +448 -0
- package/vendor/pi-tui/src/components/loader.ts +93 -0
- package/vendor/pi-tui/src/components/markdown.ts +1016 -0
- package/vendor/pi-tui/src/components/scroll-view.ts +217 -0
- package/vendor/pi-tui/src/components/select-list.ts +230 -0
- package/vendor/pi-tui/src/components/settings-list.ts +277 -0
- package/vendor/pi-tui/src/components/spacer.ts +29 -0
- package/vendor/pi-tui/src/components/stack.ts +155 -0
- package/vendor/pi-tui/src/components/text.ts +108 -0
- package/vendor/pi-tui/src/components/truncated-text.ts +66 -0
- package/vendor/pi-tui/src/components/v-stack.ts +34 -0
- package/vendor/pi-tui/src/editor-component.ts +75 -0
- package/vendor/pi-tui/src/fuzzy.ts +138 -0
- package/vendor/pi-tui/src/index.ts +149 -0
- package/vendor/pi-tui/src/keybindings.ts +321 -0
- package/vendor/pi-tui/src/keys.ts +1402 -0
- package/vendor/pi-tui/src/kill-ring.ts +47 -0
- package/vendor/pi-tui/src/latex.ts +1381 -0
- package/vendor/pi-tui/src/layout-node.ts +52 -0
- package/vendor/pi-tui/src/layout.ts +411 -0
- package/vendor/pi-tui/src/native-modifiers.ts +60 -0
- package/vendor/pi-tui/src/native-module-path.ts +32 -0
- package/vendor/pi-tui/src/stdin-buffer.ts +445 -0
- package/vendor/pi-tui/src/terminal-colors.ts +74 -0
- package/vendor/pi-tui/src/terminal-image.ts +701 -0
- package/vendor/pi-tui/src/terminal.ts +554 -0
- package/vendor/pi-tui/src/tui-alt-screen.ts +1379 -0
- package/vendor/pi-tui/src/tui-main-screen.ts +655 -0
- package/vendor/pi-tui/src/tui.ts +1264 -0
- package/vendor/pi-tui/src/undo-stack.ts +29 -0
- package/vendor/pi-tui/src/utils.ts +1327 -0
- package/vendor/pi-tui/src/word-navigation.ts +118 -0
- package/vendor/pi-tui/test/test-themes.ts +39 -0
- package/vendor/pi-tui/test/virtual-terminal.ts +219 -0
- package/CHANGELOG.md +0 -512
- package/bin/rovecode.js +0 -24
- package/dist/cli/app-dybnr56b.js +0 -2
- package/dist/cli/ask-user-p8hq4xgj.js +0 -2
- package/dist/cli/auth-login-ewpgw5sm.js +0 -2
- package/dist/cli/auth-m8p9grty.js +0 -2
- package/dist/cli/bench-xv3ypwev.js +0 -9
- package/dist/cli/catalog-737wb2s0.js +0 -2
- package/dist/cli/cli-arhg40m0.js +0 -2
- package/dist/cli/client-cf2pxx8q.js +0 -2
- package/dist/cli/commands-3p7e4xxs.js +0 -2
- package/dist/cli/connect-3q93d7cb.js +0 -2
- package/dist/cli/context-cmd-eqxmxhzq.js +0 -2
- package/dist/cli/context-report-hbw9zfes.js +0 -2
- package/dist/cli/count-remote-mby98cd0.js +0 -2
- package/dist/cli/design-122y0axd.js +0 -2
- package/dist/cli/dispatch-b4egzvvh.js +0 -2
- package/dist/cli/doctor-x4jkv72e.js +0 -3
- package/dist/cli/executor-ftvg6tsy.js +0 -2
- package/dist/cli/export-pdgdhkch.js +0 -2
- package/dist/cli/files-cez9a96p.js +0 -2
- package/dist/cli/gauntlet-r3xxaszc.js +0 -2
- package/dist/cli/gauntlet-runner-r515m7kk.js +0 -10
- package/dist/cli/gauntlet-wave3-bnkjk2v2.js +0 -5
- package/dist/cli/gauntlet-wave4-acs9s60q.js +0 -14
- package/dist/cli/hashline-ewg5hbe3.js +0 -2
- package/dist/cli/http-n0kehsk8.js +0 -5
- package/dist/cli/index-z5qt1s76.js +0 -2
- package/dist/cli/install-80mp63kx.js +0 -2
- package/dist/cli/loop-12twjcat.js +0 -2
- package/dist/cli/main-01pv9206.js +0 -4
- package/dist/cli/main-0jys2ccn.js +0 -3
- package/dist/cli/main-1ztz6fkj.js +0 -10
- package/dist/cli/main-23q7cmww.js +0 -9
- package/dist/cli/main-2rzbexn2.js +0 -3
- package/dist/cli/main-2wyax8k9.js +0 -9
- package/dist/cli/main-2yeveeve.js +0 -6
- package/dist/cli/main-2z3dek0b.js +0 -3
- package/dist/cli/main-2zgsknth.js +0 -3
- package/dist/cli/main-45ejth3a.js +0 -4
- package/dist/cli/main-45rn3trk.js +0 -22
- package/dist/cli/main-4p4e2w7x.js +0 -4
- package/dist/cli/main-4y0tnfpa.js +0 -16
- package/dist/cli/main-5py0rkmc.js +0 -4
- package/dist/cli/main-6dtqmbt6.js +0 -7
- package/dist/cli/main-6h9x282m.js +0 -4
- package/dist/cli/main-6vjeds42.js +0 -3
- package/dist/cli/main-78gq4bt9.js +0 -6
- package/dist/cli/main-7jd5vh3x.js +0 -4
- package/dist/cli/main-7kt6r53y.js +0 -4
- package/dist/cli/main-8c1tbazx.js +0 -58
- package/dist/cli/main-9a9rnh47.js +0 -19
- package/dist/cli/main-9ht36z12.js +0 -3
- package/dist/cli/main-a2yfvcy9.js +0 -7
- package/dist/cli/main-a3f51n0x.js +0 -5
- package/dist/cli/main-b8zq261k.js +0 -3
- package/dist/cli/main-bxtvnf6d.js +0 -13
- package/dist/cli/main-edxc3yzt.js +0 -4
- package/dist/cli/main-evgz4mp5.js +0 -21
- package/dist/cli/main-f33fc5je.js +0 -9
- package/dist/cli/main-fvnpq46y.js +0 -12
- package/dist/cli/main-gbbty4d4.js +0 -3
- package/dist/cli/main-gth53dnt.js +0 -25
- package/dist/cli/main-hqbz10aw.js +0 -9
- package/dist/cli/main-hrrvcfan.js +0 -38
- package/dist/cli/main-hzwtsb2m.js +0 -5
- package/dist/cli/main-j7ttv0sd.js +0 -34
- package/dist/cli/main-jak598k9.js +0 -5
- package/dist/cli/main-kba6zeyd.js +0 -6
- package/dist/cli/main-kwwsz6rq.js +0 -3
- package/dist/cli/main-m8vm17zq.js +0 -3
- package/dist/cli/main-mg4f96e1.js +0 -3
- package/dist/cli/main-mg9b20ac.js +0 -18
- package/dist/cli/main-mgb9ccnx.js +0 -3
- package/dist/cli/main-mjt2p7aj.js +0 -3
- package/dist/cli/main-n6qrdbmy.js +0 -3
- package/dist/cli/main-na7wse0x.js +0 -5
- package/dist/cli/main-nqveez48.js +0 -4
- package/dist/cli/main-ntqef02r.js +0 -10
- package/dist/cli/main-nvc3yjay.js +0 -136
- package/dist/cli/main-p0cfn6nr.js +0 -16
- package/dist/cli/main-qj2djy17.js +0 -19
- package/dist/cli/main-qsevpgsv.js +0 -3
- package/dist/cli/main-qvarybsp.js +0 -3
- package/dist/cli/main-rebtt91r.js +0 -5
- package/dist/cli/main-rpg7h8mb.js +0 -3
- package/dist/cli/main-rsy72qmw.js +0 -15
- package/dist/cli/main-rvetps99.js +0 -18
- package/dist/cli/main-s4bb0jav.js +0 -3
- package/dist/cli/main-s9v8k74e.js +0 -3
- package/dist/cli/main-tjvwmscs.js +0 -3
- package/dist/cli/main-tkgarpjj.js +0 -4
- package/dist/cli/main-v8y60bb2.js +0 -3
- package/dist/cli/main-vhrrq337.js +0 -3
- package/dist/cli/main-vp2dfb7s.js +0 -4
- package/dist/cli/main-vqbr22sz.js +0 -8
- package/dist/cli/main-vxnwe5xx.js +0 -18
- package/dist/cli/main-wgph00xf.js +0 -5
- package/dist/cli/main-wk2csfnj.js +0 -5
- package/dist/cli/main-wm997zjx.js +0 -3
- package/dist/cli/main-wpkyraxh.js +0 -3
- package/dist/cli/main-wqt32p5x.js +0 -4
- package/dist/cli/main-x9ct6y1a.js +0 -3
- package/dist/cli/main-xfekqh9m.js +0 -7
- package/dist/cli/main-xt9zc3n6.js +0 -7
- package/dist/cli/main-xx2z3zh5.js +0 -4
- package/dist/cli/main-y5c82rxr.js +0 -3
- package/dist/cli/main-yrjt2sqt.js +0 -14
- package/dist/cli/main-ys6zj3yr.js +0 -3
- package/dist/cli/main-ywbxshqc.js +0 -8
- package/dist/cli/main-z13755t8.js +0 -25
- package/dist/cli/main-zc7pyrbj.js +0 -4
- package/dist/cli/main.js +0 -279
- package/dist/cli/market-cmd-bm5xvn9f.js +0 -5
- package/dist/cli/mcp-login-bthtfpt7.js +0 -2
- package/dist/cli/mcp-market-cmd-mbeshfyd.js +0 -2
- package/dist/cli/notify-54v5z9dz.js +0 -2
- package/dist/cli/oauth-g5gme95c.js +0 -2
- package/dist/cli/output-satndjap.js +0 -16
- package/dist/cli/profiles-sfhpbq3m.js +0 -2
- package/dist/cli/provider-config-hv3xtdt4.js +0 -2
- package/dist/cli/provider-kwzq6g84.js +0 -2
- package/dist/cli/registry-fh0hdnyn.js +0 -2
- package/dist/cli/registry-y1y8e94r.js +0 -2
- package/dist/cli/repl-t4z03mqq.js +0 -11
- package/dist/cli/resume-fqt4chg8.js +0 -2
- package/dist/cli/run-flags-rysbag9t.js +0 -2
- package/dist/cli/runtime-j19fjbsa.js +0 -2
- package/dist/cli/sandbox-config-g4qxd7y5.js +0 -2
- package/dist/cli/server-r0b6bksk.js +0 -5
- package/dist/cli/session-arg-txmn5g4x.js +0 -2
- package/dist/cli/session-ed250d9j.js +0 -2
- package/dist/cli/sessions-cmd-adw7svfn.js +0 -7
- package/dist/cli/settings-y9rzcqx8.js +0 -2
- package/dist/cli/setup-jmbr11j0.js +0 -2
- package/dist/cli/sextant-smoke-tcth0vea.js +0 -5
- package/dist/cli/skills-cmd-zbdy99v6.js +0 -2
- package/dist/cli/smoke-1bg937kx.js +0 -8
- package/dist/cli/start-chat-p01cdks3.js +0 -12
- package/dist/cli/stream-4wmyaypz.js +0 -2
- package/dist/cli/task-eg4s093s.js +0 -2
- package/dist/cli/tasks-12v9rr9k.js +0 -2
- package/dist/cli/thinking-a5ngvqyh.js +0 -2
- package/dist/cli/todo-1wxpcecx.js +0 -2
- package/dist/cli/tools-2ftsya7w.js +0 -2
- package/dist/cli/tools-x1tj4fxm.js +0 -2
- package/dist/cli/trust-cmd-hccxehzb.js +0 -2
- package/dist/cli/update-check-ygt3vd7m.js +0 -2
- package/dist/cli/update-cmd-v23qhr8c.js +0 -2
- package/dist/cli/voice-g1gtck92.js +0 -2
- package/dist/cli/webfetch-0nnrjgb5.js +0 -2
- package/dist/cli/websearch-f0vr2p7d.js +0 -2
- package/dist/cli/workspace-9rq1w4ta.js +0 -2
- package/dist/lib/index.js +0 -62
- package/dist/lib/models-index.json +0 -1
- package/dist/lib/plugins.js +0 -6
- package/dist/lib/providers.js +0 -17
- package/dist/lib/public-api.js +0 -20
- package/dist/rovecode.exe +0 -4
- /package/{dist/cli → src/providers}/models-index.json +0 -0
|
@@ -0,0 +1,111 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 1,
|
|
3
|
+
"generatedBy": "scripts/build-mcp-docs.mjs",
|
|
4
|
+
"docs": {
|
|
5
|
+
"brave-search": {
|
|
6
|
+
"source": "https://raw.githubusercontent.com/brave/brave-search-mcp-server/main/README.md",
|
|
7
|
+
"format": "markdown",
|
|
8
|
+
"bytes": 20933,
|
|
9
|
+
"truncated": false,
|
|
10
|
+
"body": "# Brave Search MCP Server\n\nAn MCP server implementation that integrates the Brave Search API, providing comprehensive search capabilities including web search, local business search, place search, image search, video search, news search, LLM context, and AI-powered summarization. This project supports both STDIO and HTTP transports, with STDIO as the default mode.\n\n[](https://deepwiki.com/brave/brave-search-mcp-server)\n\n## Migration\n\n### 1.x to 2.x\n\n#### Default transport now STDIO\n\nTo follow established MCP conventions, the server now defaults to STDIO. If you would like to continue using HTTP, you will need to set the `BRAVE_MCP_TRANSPORT` environment variable to `http`, or provide the runtime argument `--transport http` when launching the server.\n\n#### Response structure of `brave_image_search`\n\nVersion 1.x of the MCP server would return base64-encoded image data along with image URLs. This dramatically slowed down the response, as well as consumed unnecessarily context in the session. Version 2.x removes the base64-encoded data, and returns a response object that more closely reflects the original Brave Search API response. The updated output schema is defined in [`src/tools/images/schemas/output.ts`](https://github.com/brave/brave-search-mcp-server/blob/main/src/tools/images/schemas/output.ts).\n\n## Tools\n\n### Web Search (`brave_web_search`)\nPerforms comprehensive web searches with rich result types and advanced filtering options.\n\n**Parameters:**\n- `query` (string, required): Search terms (max 400 chars, 50 words)\n- `country` (string, optional): Country code (default: \"US\")\n- `search_lang` (string, optional): Search language (default: \"en\")\n- `ui_lang` (string, optional): UI language (default: \"en-US\")\n- `count` (number, optional): Results per page (1-20, default: 10)\n- `offset` (number, optional): Pagination offset (max 9, default: 0)\n- `safesearch` (string, optional): Content filtering (\"off\", \"moderate\", \"strict\", default: \"moderate\")\n- `freshness` (string, optional): Time filter (\"pd\", \"pw\", \"pm\", \"py\", or date range)\n- `text_decorations` (boolean, optional): Include highlighting markers (default: true)\n- `spellcheck` (boolean, optional): Enable spell checking (default: true)\n- `result_filter` (array, optional): Filter result types (default: [\"web\", \"query\"])\n- `goggles` (array, optional): Custom re-ranking definitions\n- `units` (string, optional): Measurement units (\"metric\" or \"imperial\")\n- `extra_snippets` (boolean, optional): Get additional excerpts (Pro plans only)\n- `summary` (boolean, optional): Enable summary key generation for AI summarization\n\n### Local Search (`brave_local_search`)\nSearches for local businesses and places with detailed information including ratings, hours, and AI-generated descriptions.\n\n**Parameters:**\n- Same as `brave_web_search` with automatic location filtering\n- Automatically includes \"web\" and \"locations\" in result_filter\n\n**Note:** Requires Pro plan for full local search capabilities. Falls back to web search otherwise.\n\n### Video Search (`brave_video_search`)\nSearches for videos with comprehensive metadata and thumbnail information.\n\n**Parameters:**\n- `query` (string, required): Search terms (max 400 chars, 50 words)\n- `country` (string, optional): Country code (default: \"US\")\n- `search_lang` (string, optional): Search language (default: \"en\")\n- `ui_lang` (string, optional): UI language (default: \"en-US\")\n- `count` (number, optional): Results per page (1-50, default: 20)\n- `offset` (number, optional): Pagination offset (max 9, default: 0)\n- `spellcheck` (boolean, optional): Enable spell checking (default: true)\n- `safesearch` (string, optional): Content filtering (\"off\", \"moderate\", \"strict\", default: \"moderate\")\n- `freshness` (string, optional): Time filter (\"pd\", \"pw\", \"pm\", \"py\", or date range)\n\n### Image Search (`brave_image_search`)\nSearches for images with metadata including URLs, dimensions, and confidence scores.\n\n**Parameters:**\n- `query` (string, required): Search terms (max 400 chars, 50 words)\n- `country` (string, optional): Country code (default: \"US\")\n- `search_lang` (string, optional): Search language (default: \"en\")\n- `count` (number, optional): Results per page (1-200, default: 50)\n- `safesearch` (string, optional): Content filtering (\"off\", \"strict\", default: \"strict\")\n- `spellcheck` (boolean, optional): Enable spell checking (default: true)\n\n### News Search (`brave_news_search`)\nSearches for current news articles with freshness controls and breaking news indicators.\n\n**Parameters:**\n- `query` (string, required): Search terms (max 400 chars, 50 words)\n- `country` (string, optional): Country code (default: \"US\")\n- `search_lang` (string, optional): Search language (default: \"en\")\n- `ui_lang` (string, optional): UI language (default: \"en-US\")\n- `count` (number, optional): Results per page (1-50, default: 20)\n- `offset` (number, optional): Pagination offset (max 9, default: 0)\n- `spellcheck` (boolean, optional): Enable spell checking (default: true)\n- `safesearch` (string, optional): Content filtering (\"off\", \"moderate\", \"strict\", default: \"moderate\")\n- `freshness` (string, optional): Time filter (default: \"pd\" for last 24 hours)\n- `extra_snippets` (boolean, optional): Get additional excerpts (Pro plans only)\n- `goggles` (array, optional): Custom re-ranking definitions\n\n### Summarizer Search (`brave_summarizer`)\nGenerates AI-powered summaries from web search results using Brave's summarization API.\n\n**Parameters:**\n- `key` (string, required): Summary key from web search results (use `summary: true` in web search)\n- `entity_info` (boolean, optional): Include entity information (default: false)\n- `inline_references` (boolean, optional): Add source URL references (default: false)\n\n**Usage:** First perform a web search with `summary: true`, then use the returned summary key with this tool.\n\n### Place Search (`brave_place_search`)\nSearches for points of interest (POIs) in a specified geographic area using Brave's Place Search API. Returns rich, structured place data including name, address, opening hours, contact info, ratings, photos, categories, and timezone.\n\n**Parameters:**\n- `query` (string, optional): Query string used to refine the POI search (max 400 chars, 50 words). When omitted, returns general points of interest in the supplied area.\n- `latitude` (number, optional): Latitude of the search center (-90 to 90). Typically paired with `longitude`.\n- `longitude` (number, optional): Longitude of the search center (-180 to 180). Typically paired with `latitude`.\n- `location` (string, optional): Location string used as an alternative to `latitude`/`longitude`. For US locations prefer the form `<city> <state> <country name>` (e.g., `san francisco ca united states`); for non-US locations use `<city> <country name>` (e.g., `tokyo japan`).\n- `radius` (number, optional): Search radius around the supplied coordinates, in meters. If omitted, the search is performed globally.\n- `count` (number, optional): Number of results to return (1-50, default 20).\n- `country` (string, optional): Two-letter country code (default `US`).\n- `search_lang` (string, optional): Search language (default `en`).\n- `ui_lang` (string, optional): UI language (default `en-US`).\n- `units` (string, optional): Distance units (`metric` or `imperial`, default `metric`).\n- `safesearch` (string, optional): Safe search level (`off`, `moderate`, `strict`, default `strict`).\n- `spellcheck` (boolean, optional): Whether to spellcheck the query (default `true`).\n- `geoloc` (string, optional): Optional geolocation token used to refine results.\n\n**Optional request headers:**\n- `api-version` (string, optional): Brave API version (`YYYY-MM-DD`)\n- `accept` (string, optional): Response media type (`application/json` or `*/*`)\n- `cache-control` (string, optional): Use `no-cache` to request fresh content\n- `user-agent` (string, optional): User agent originating the request\n\n### LLM Context (`brave_llm_context`)\nRetrieves pre-extracted web content optimized for AI agents, LLM grounding, and RAG pipelines.\n\n**Parameters:**\n- `query` (string, required): Search query (max 400 chars, 50 words)\n- `country` (string, optional): Search country code\n- `search_lang` (string, optional): Search language code\n- `count` (number, optional): Maximum number of search results considered (1-50)\n- `spellcheck` (boolean, optional): Enable spell checking\n- `maximum_number_of_urls` (number, optional): Maximum number of URLs to include (1-50)\n- `maximum_number_of_tokens` (number, optional): Approximate maximum number of context tokens (1024-32768)\n- `maximum_number_of_snippets` (number, optional): Maximum number of snippets to include (1-256)\n- `context_threshold_mode` (string, optional): Threshold mode (\"disabled\", \"strict\", \"lenient\", \"balanced\")\n- `maximum_number_of_tokens_per_url` (number, optional): Maximum tokens per URL (512-8192)\n- `maximum_number_of_snippets_per_url` (number, optional): Maximum snippets per URL (1-100)\n- `goggles` (string or array, optional): Goggle URL or definition for custom re-ranking\n- `freshness` (string, optional): Time filter (\"pd\", \"pw\", \"pm\", \"py\", or date range)\n- `enable_local` (boolean, optional): Enable local recall\n- `enable_source_metadata` (boolean, optional): Include source metadata enrichment\n\n**Optional request headers:**\n- `x-loc-lat` (number, optional): Client latitude (-90 to 90)\n- `x-loc-long` (number, optional): Client longitude (-180 to 180)\n- `x-loc-city` (string, optional): Client city name\n- `x-loc-state` (string, optional): Client state or region code\n- `x-loc-state-name` (string, optional): Client state or region name\n- `x-loc-country` (string, optional): Client country code\n- `x-loc-postal-code` (string, optional): Client postal code\n- `api-version` (string, optional): Brave API version (`YYYY-MM-DD`)\n- `accept` (string, optional): Response media type (\"application/json\" or \"*/*\")\n- `cache-control` (string, optional): Use `no-cache` to request fresh content\n- `user-agent` (string, optional): User agent originating the request\n\n## Configuration\n\n### Getting an API Key\n\n1. Sign up for a [Brave Search API account](https://brave.com/search/api/)\n2. Choose a plan:\n - **Search**: The real-time search data your chatbots & agents need to generate answers. Complete search results (URLs, text, news, images, and more), with additional LLM context optimized for AI.\n - **Answers**: Summarized, completed answers to any question. Answers grounded on a single search or multiple searches for better accuracy & reduced hallucinations.\n3. Generate your API key from the [developer dashboard](https://api-dashboard.search.brave.com/app/keys)\n\n### Environment Variables\n\nThe server supports the following environment variables:\n\n- `BRAVE_API_KEY`: Your Brave Search API key (required unless `BRAVE_API_KEY_FILE` is set)\n- `BRAVE_API_KEY_FILE`: Path to a file containing your Brave Search API key. When set, this takes precedence over `BRAVE_API_KEY`. Useful for Docker secrets and similar mounted-secret setups.\n- `BRAVE_MCP_TRANSPORT`: Transport mode (\"http\" or \"stdio\", default: \"stdio\")\n- `BRAVE_MCP_PORT`: HTTP server port (default: 8080)\n- `BRAVE_MCP_HOST`: HTTP server host (default: \"127.0.0.1\"). Binds to loopback only by default; set to \"0.0.0.0\" to expose the server on all interfaces (required inside containers and on Amazon Bedrock AgentCore). Only do this on a trusted network, since the HTTP endpoint is unauthenticated.\n- `BRAVE_MCP_ALLOWED_ORIGINS`: Space- or comma-separated list of additional `Origin` header values permitted for the HTTP transport. Loopback origins are always allowed; browser requests carrying any other `Origin` are rejected with HTTP 403 to guard against DNS rebinding. Set this when a browser-based client on a real domain needs access.\n- `BRAVE_MCP_ALLOWED_HOSTS`: Space- or comma-separated list of hostnames permitted in the `Host` header of the HTTP transport. Matching is on the hostname only and is case-insensitive; a numeric port in an entry (e.g. `mcp.example.com:8080`) is accepted but ignored for matching. Optional, opt-in defense-in-depth: when unset (default) the `Host` header is not validated, so reverse-proxy and custom-domain deployments are unaffected. When set, only loopback hosts and the listed hostnames are accepted; any other `Host` (including malformed/non-numeric ports) is rejected with HTTP 403.\n- `BRAVE_MCP_LOG_LEVEL`: Desired logging level(\"debug\", \"info\", \"notice\", \"warning\", \"error\", \"critical\", \"alert\", or \"emergency\", default: \"info\")\n- `BRAVE_MCP_ENABLED_TOOLS`: When used, specifies a space-separated whitelist for supported tools\n- `BRAVE_MCP_DISABLED_TOOLS`: When used, specifies a space-separated blacklist for supported tools\n- `BRAVE_MCP_STATELESS`: HTTP stateless mode (default: \"true\"). When running on Amazon Bedrock Agentcore, set to \"true\".\n\n### Command Line Options\n\n```bash\nnode dist/index.js [options]\n\nOptions:\n --brave-api-key <string> Brave API key\n --brave-api-key-file <string> Path to file containing Brave API key\n --transport <stdio|http> Transport type (default: stdio)\n --port <number> HTTP server port (default: 8080)\n --host <string> HTTP server host (default: 127.0.0.1)\n --allowed-origins <origins...> Allowed Origin header values for HTTP transport (DNS rebinding protection)\n --allowed-hosts <hosts...> Allowed Host header values for HTTP transport (opt-in DNS rebinding protection)\n --logging-level <string> Desired logging level (one of _debug_, _info_, _notice_, _warning_, _error_, _critical_, _alert_, or _emergency_)\n --enabled-tools Tools whitelist (only the specified tools will be enabled)\n --disabled-tools Tools blacklist (included tools will be disabled)\n --stateless <boolean> HTTP Stateless flag\n```\n\n## Installation\n\n### Usage with Claude Desktop\n\nAdd this to your `claude_desktop_config.json`:\n\n#### Docker\n\n```json\n{\n \"mcpServers\": {\n \"brave-search\": {\n \"command\": \"docker\",\n \"args\": [\"run\", \"-i\", \"--rm\", \"-e\", \"BRAVE_API_KEY\", \"docker.io/mcp/brave-search\"],\n \"env\": {\n \"BRAVE_API_KEY\": \"YOUR_API_KEY_HERE\"\n }\n }\n }\n}\n```\n\n#### NPX\n\n```json\n{\n \"mcpServers\": {\n \"brave-search\": {\n \"command\": \"npx\",\n \"args\": [\"-y\", \"@brave/brave-search-mcp-server\", \"--transport\", \"http\"],\n \"env\": {\n \"BRAVE_API_KEY\": \"YOUR_API_KEY_HERE\"\n }\n }\n }\n}\n```\n\n### Usage with VS Code\n\nFor quick installation, use the one-click installation buttons below:\n\n[](https://insiders.vscode.dev/redirect/mcp/install?name=brave-search&inputs=%5B%7B%22password%22%3Atrue%2C%22id%22%3A%22brave-api-key%22%2C%22type%22%3A%22promptString%22%2C%22description%22%3A%22Brave+Search+API+Key%22%7D%5D&config=%7B%22command%22%3A%22npx%22%2C%22args%22%3A%5B%22-y%22%2C%22%40brave%2Fbrave-search-mcp-server%22%2C%22--transport%22%2C%22stdio%22%5D%2C%22env%22%3A%7B%22BRAVE_API_KEY%22%3A%22%24%7Binput%3Abrave-api-key%7D%22%7D%7D) [](https://insiders.vscode.dev/redirect/mcp/install?name=brave-search&inputs=%5B%7B%22password%22%3Atrue%2C%22id%22%3A%22brave-api-key%22%2C%22type%22%3A%22promptString%22%2C%22description%22%3A%22Brave+Search+API+Key%22%7D%5D&config=%7B%22command%22%3A%22npx%22%2C%22args%22%3A%5B%22-y%22%2C%22%40brave%2Fbrave-search-mcp-server%22%2C%22--transport%22%2C%22stdio%22%5D%2C%22env%22%3A%7B%22BRAVE_API_KEY%22%3A%22%24%7Binput%3Abrave-api-key%7D%22%7D%7D&quality=insiders) \n[](https://insiders.vscode.dev/redirect/mcp/install?name=brave-search&inputs=%5B%7B%22password%22%3Atrue%2C%22id%22%3A%22brave-api-key%22%2C%22type%22%3A%22promptString%22%2C%22description%22%3A%22Brave+Search+API+Key%22%7D%5D&config=%7B%22command%22%3A%22docker%22%2C%22args%22%3A%5B%22run%22%2C%22-i%22%2C%22--rm%22%2C%22-e%22%2C%22BRAVE_API_KEY%22%2C%22mcp%2Fbrave-search%22%5D%2C%22env%22%3A%7B%22BRAVE_API_KEY%22%3A%22%24%7Binput%3Abrave-api-key%7D%22%7D%7D) [](https://insiders.vscode.dev/redirect/mcp/install?name=brave-search&inputs=%5B%7B%22password%22%3Atrue%2C%22id%22%3A%22brave-api-key%22%2C%22type%22%3A%22promptString%22%2C%22description%22%3A%22Brave+Search+API+Key%22%7D%5D&config=%7B%22command%22%3A%22docker%22%2C%22args%22%3A%5B%22run%22%2C%22-i%22%2C%22--rm%22%2C%22-e%22%2C%22BRAVE_API_KEY%22%2C%22mcp%2Fbrave-search%22%5D%2C%22env%22%3A%7B%22BRAVE_API_KEY%22%3A%22%24%7Binput%3Abrave-api-key%7D%22%7D%7D&quality=insiders)\n\nFor manual installation, add the following to your User Settings (JSON) or `.vscode/mcp.json`:\n\n#### Docker\n\n```json\n{\n \"inputs\": [\n {\n \"password\": true,\n \"id\": \"brave-api-key\",\n \"type\": \"promptString\",\n \"description\": \"Brave Search API Key\",\n }\n ],\n \"servers\": {\n \"brave-search\": {\n \"command\": \"docker\",\n \"args\": [\"run\", \"-i\", \"--rm\", \"-e\", \"BRAVE_API_KEY\", \"mcp/brave-search\"],\n \"env\": {\n \"BRAVE_API_KEY\": \"${input:brave-api-key}\"\n }\n }\n }\n}\n```\n\n#### NPX\n\n```json\n{\n \"inputs\": [\n {\n \"password\": true,\n \"id\": \"brave-api-key\",\n \"type\": \"promptString\",\n \"description\": \"Brave Search API Key\",\n }\n ],\n \"servers\": {\n \"brave-search-mcp-server\": {\n \"command\": \"npx\",\n \"args\": [\"-y\", \"@brave/brave-search-mcp-server\", \"--transport\", \"stdio\"],\n \"env\": {\n \"BRAVE_API_KEY\": \"${input:brave-api-key}\"\n }\n }\n }\n}\n```\n\n## Build\n\n### Docker\n\n```bash\ndocker build -t mcp/brave-search:latest .\n```\n\n### Local Build\n\n```bash\nnpm install\nnpm run build\n```\n\n## Development\n\n### Prerequisites\n\n- Node.js 22.x or higher\n- npm\n- Brave Search API key\n\n### Setup\n\n1. Clone the repository:\n```bash\ngit clone https://github.com/brave/brave-search-mcp-server.git\ncd brave-search-mcp-server\n```\n\n2. Install dependencies:\n```bash\nnpm install\n```\n\n3. Build the project:\n```bash\nnpm run build\n```\n\n### Testing via Claude Desktop\n\nAdd a reference to your local build in `claude_desktop_config.json`:\n\n```json\n{\n \"mcpServers\": {\n \"brave-search-dev\": {\n \"command\": \"node\",\n \"args\": [\"C:\\\\GitHub\\\\brave-search-mcp-server\\\\dist\\\\index.js\"], // Verify your path\n \"env\": {\n \"BRAVE_API_KEY\": \"YOUR_API_KEY_HERE\"\n }\n }\n }\n}\n```\n\n### Testing via MCP Inspector\n\n1. Build and start the server:\n```bash\nnpm run build\nnode dist/index.js\n```\n\n2. In another terminal, start the MCP Inspector:\n```bash\nnpx @modelcontextprotocol/inspector node dist/index.js\n```\n\nSTDIO is the default mode. For HTTP mode testing, add `--transport http` to the arguments in the Inspector UI.\n\n### Available Scripts\n\n- `npm run build`: Build the TypeScript project\n- `npm run watch`: Watch for changes and rebuild\n- `npm run format`: Format code with Prettier\n- `npm run format:check`: Check code formatting\n- `npm run prepare`: Format and build (runs automatically on npm install)\n\n- `npm run inspector`: Launch an instance of MCP Inspector\n- `npm run inspector:stdio`: Launch a instance of MCP Inspector, configured for STDIO\n\n### Docker Compose\n\nFor local development with Docker:\n\n```bash\ndocker-compose up --build\n```\n\nSet `BRAVE_API_KEY` (or `BRAVE_API_KEY_FILE`) in your shell or a `.env` file before starting the stack. The default `docker-compose.yml` also accepts `BRAVE_API_KEY_FILE` when the path is valid inside the container (for example, from a bind mount or Docker secret).\n\n#### Docker Compose secrets (optional)\n\nTo avoid putting the API key in an environment variable, you can use [Docker Compose secrets](https://docs.docker.com/compose/how-tos/use-secrets/). The server reads the key from the path in `BRAVE_API_KEY_FILE`, which must exist inside the container.\n\n1. Copy the example secret file and add your key:\n\n```bash\ncp secrets/brave_api_key.txt.example secrets/brave_api_key.txt\n```\n\n2. Start the stack with the optional secrets override:\n\n```bash\ndocker compose -f docker-compose.yml -f docker-compose.secrets.example.yml up --build\n```\n\nThe override mounts the secret at `/run/secrets/brave_api_key` and sets `BRAVE_API_KEY_FILE` accordingly. See `docker-compose.secrets.example.yml` for the full configuration.\n\n## License\n\nThis MCP server is licensed under the MIT License. This means you are free to use, modify, and distribute the software, subject to the terms and conditions of the MIT License. For more details, please see the LICENSE file in the project repository."
|
|
11
|
+
},
|
|
12
|
+
"cloudflare-docs": {
|
|
13
|
+
"source": "https://raw.githubusercontent.com/cloudflare/mcp-server-cloudflare/main/README.md",
|
|
14
|
+
"format": "markdown",
|
|
15
|
+
"bytes": 9585,
|
|
16
|
+
"truncated": false,
|
|
17
|
+
"body": "# Cloudflare MCP Server\n\nModel Context Protocol (MCP) is a [new, standardized protocol](https://modelcontextprotocol.io/introduction) for managing context between large language models (LLMs) and external systems. In this repository, you can find several MCP servers allowing you to connect to Cloudflare's service from an MCP client (e.g. Cursor, Claude) and use natural language to accomplish tasks through your Cloudflare account.\n\nThese MCP servers allow your [MCP Client](https://modelcontextprotocol.io/clients) to read configurations from your account, process information, make suggestions based on data, and even make those suggested changes for you. All of these actions can happen across Cloudflare's many services including application development, security and performance.\n\nEvery server in this repository exposes the same stateless Streamable HTTP handler at `/mcp` and `/sse` through a fresh SDK v2 server factory. `/sse` remains as a URL compatibility alias; it does not use the deprecated HTTP+SSE transport. A legacy SSE `GET /sse` request receives a `410 Gone` Problem Details response with two migration options: configure the existing URL to use Streamable HTTP, or switch to the recommended `/mcp` URL for future compatibility. Modern 2026 requests and stateless 2025 requests share the same request-scoped implementation without an MCP protocol session. OAuth, credentials, account selection, application caches, and product Durable Objects remain application/security state where required.\n\nCloudflare offers the following MCP servers. The domain-specific servers are included in this repository, while the recommended Code Mode server is maintained in [`cloudflare/mcp`](https://github.com/cloudflare/mcp):\n\n| Server Name | Description | Server URL |\n| ----------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------- | ---------------------------------------------- |\n| [**Code Mode server (recommended)**](https://github.com/cloudflare/mcp) | Best when you want broad access across Cloudflare's APIs through code execution | `https://mcp.cloudflare.com/mcp` |\n| [**Documentation server**](https://raw.githubusercontent.com/apps/docs-ai-search) | Get up-to-date reference information on Cloudflare | `https://docs.mcp.cloudflare.com/mcp` |\n| [**Workers Bindings server**](https://raw.githubusercontent.com/apps/workers-bindings) | Build Workers applications with storage, AI, and compute primitives | `https://bindings.mcp.cloudflare.com/mcp` |\n| [**Workers Builds server**](https://raw.githubusercontent.com/apps/workers-builds) | Get insights and manage your Cloudflare Workers Builds | `https://builds.mcp.cloudflare.com/mcp` |\n| [**Observability server**](https://raw.githubusercontent.com/apps/workers-observability) | Debug and get insight into your application's logs and analytics | `https://observability.mcp.cloudflare.com/mcp` |\n| [**Container server**](https://raw.githubusercontent.com/apps/sandbox-container) | Spin up a sandbox development environment | `https://containers.mcp.cloudflare.com/mcp` |\n| [**Browser Run server**](https://raw.githubusercontent.com/apps/browser-rendering) | Fetch web pages, convert them to markdown and take screenshots | `https://browser.mcp.cloudflare.com/mcp` |\n| [**Logpush server**](https://raw.githubusercontent.com/apps/logpush) | Get quick summaries for Logpush job health | `https://logs.mcp.cloudflare.com/mcp` |\n| [**AI Gateway server**](https://raw.githubusercontent.com/apps/ai-gateway) | Search your logs, get details about the prompts and responses | `https://ai-gateway.mcp.cloudflare.com/mcp` |\n| [**AutoRAG server**](https://raw.githubusercontent.com/apps/autorag) | Search and query account AutoRAG instances | `https://autorag.mcp.cloudflare.com/mcp` |\n| [**Audit Logs server**](https://raw.githubusercontent.com/apps/auditlogs) | Query audit logs and generate reports for review | `https://auditlogs.mcp.cloudflare.com/mcp` |\n| [**DNS Analytics server**](https://raw.githubusercontent.com/apps/dns-analytics) | Optimize DNS performance and debug issues based on current setup | `https://dns-analytics.mcp.cloudflare.com/mcp` |\n| [**Digital Experience Monitoring server**](https://raw.githubusercontent.com/apps/dex-analysis) | Get quick insight on critical applications for your organization | `https://dex.mcp.cloudflare.com/mcp` |\n| [**Cloudflare One CASB server**](https://raw.githubusercontent.com/apps/cloudflare-one-casb) | Quickly identify any security misconfigurations for SaaS applications to safeguard users & data | `https://casb.mcp.cloudflare.com/mcp` |\n| [**Radar server**](https://raw.githubusercontent.com/apps/radar) | Explore Cloudflare Radar internet insights | `https://radar.mcp.cloudflare.com/mcp` |\n| [**Cloudflare Blog server**](https://raw.githubusercontent.com/apps/cloudflare-blog) | Search and read posts from the Cloudflare Blog | `https://blog.mcp.cloudflare.com/mcp` |\n| [**Demo Day server**](https://raw.githubusercontent.com/apps/demo-day) | Demonstrate a minimal Cloudflare MCP server | `https://demo-day.mcp.cloudflare.com/mcp` |\n\n## Which Cloudflare MCP server should you use?\n\nCloudflare provides two categories of MCP servers:\n\n- **Code Mode server** (`mcp.cloudflare.com`) in [`cloudflare/mcp`](https://github.com/cloudflare/mcp):\n best when you want broad access across Cloudflare's APIs through code execution.\n- **Domain-specific servers** (`*.mcp.cloudflare.com`) in this repository:\n best when you want curated, typed tools for a specific Cloudflare product area.\n\n### When should you use each?\n\nUse the **Code Mode server** when:\n\n- you need broad API coverage across many Cloudflare products\n- you prefer a smaller set of general-purpose tools\n- your workflow is better served by code execution\n\nUse the **domain-specific servers** in this repository when:\n\n- you want purpose-built tools for a specific product area\n- you want more guided, typed interactions\n- you are working primarily within one Cloudflare domain such as observability, bindings, Radar, or Browser Run\n\nLearn more about the Code Mode server here: [`cloudflare/mcp`](https://github.com/cloudflare/mcp).\n\n## Connect to an MCP server\n\nConnect any MCP client with remote-server support directly to a URL in the table above. [Cloudflare AI Playground](https://playground.ai.cloudflare.com/) also accepts server URLs in its interface.\n\n## Using Cloudflare's MCP servers from the OpenAI Responses API\n\nTo use one of Cloudflare's MCP servers with [OpenAI's responses API](https://openai.com/index/new-tools-and-features-in-the-responses-api/), you will need to provide the Responses API with an API token that has the scopes (permissions) required for that particular MCP server.\n\nFor example, to use the [Browser Run MCP server](https://github.com/cloudflare/mcp-server-cloudflare/tree/main/apps/browser-rendering) with OpenAI, create an API token in the Cloudflare dashboard [here](https://dash.cloudflare.com/profile/api-tokens), with the following permissions:\n\n## Need access to more Cloudflare tools?\n\nWe're continuing to add more functionality to this remote MCP server repo. If you'd like to leave feedback, file a bug or provide a feature request, [please open an issue](https://github.com/cloudflare/mcp-server-cloudflare/issues/new/choose) on this repository\n\n## Troubleshooting\n\n\"Claude's response was interrupted ... \"\n\nIf you see this message, Claude likely hit its context-length limit and stopped mid-reply. This happens most often on servers that trigger many chained tool calls such as the observability server.\n\nTo reduce the chance of running in to this issue:\n\n- Try to be specific, keep your queries concise.\n- If a single request calls multiple tools, try to to break it into several smaller tool calls to keep the responses short.\n\n## Paid Features\n\nSome features may require a paid Cloudflare Workers plan. Ensure your Cloudflare account has the necessary subscription level for the features you intend to use.\n\n## Contributing\n\nInterested in contributing, and running this server locally? See [CONTRIBUTING.md](https://raw.githubusercontent.com/cloudflare/mcp-server-cloudflare/main/CONTRIBUTING.md) to get started."
|
|
18
|
+
},
|
|
19
|
+
"context7": {
|
|
20
|
+
"source": "https://raw.githubusercontent.com/upstash/context7/master/README.md",
|
|
21
|
+
"format": "markdown",
|
|
22
|
+
"bytes": 10517,
|
|
23
|
+
"truncated": false,
|
|
24
|
+
"body": "\n\n[](https://cursor.com/en/install-mcp?name=context7&config=eyJ1cmwiOiJodHRwczovL21jcC5jb250ZXh0Ny5jb20vbWNwIn0%3D)\n\n# Context7 Platform - Up-to-date Code Docs For Any Prompt\n\n[](https://context7.com/) [](https://www.npmjs.com/package/@upstash/context7-mcp) [](https://raw.githubusercontent.com/upstash/context7/master/LICENSE)\n\n[](https://raw.githubusercontent.com/upstash/context7/master/i18n/README.zh-TW.md) [](https://raw.githubusercontent.com/upstash/context7/master/i18n/README.zh-CN.md) [](https://raw.githubusercontent.com/upstash/context7/master/i18n/README.ja.md) [](https://raw.githubusercontent.com/upstash/context7/master/i18n/README.ko.md) [](https://raw.githubusercontent.com/upstash/context7/master/i18n/README.es.md) [](https://raw.githubusercontent.com/upstash/context7/master/i18n/README.fr.md) [-purple>)](https://raw.githubusercontent.com/upstash/context7/master/i18n/README.pt-BR.md) [](https://raw.githubusercontent.com/upstash/context7/master/i18n/README.it.md) [](https://raw.githubusercontent.com/upstash/context7/master/i18n/README.id-ID.md) [](https://raw.githubusercontent.com/upstash/context7/master/i18n/README.de.md) [](https://raw.githubusercontent.com/upstash/context7/master/i18n/README.ru.md) [](https://raw.githubusercontent.com/upstash/context7/master/i18n/README.uk.md) [](https://raw.githubusercontent.com/upstash/context7/master/i18n/README.tr.md) [](https://raw.githubusercontent.com/upstash/context7/master/i18n/README.ar.md) [](https://raw.githubusercontent.com/upstash/context7/master/i18n/README.vi.md)\n\n## ❌ Without Context7\n\nLLMs rely on outdated or generic information about the libraries you use. You get:\n\n- ❌ Code examples are outdated and based on year-old training data\n- ❌ Hallucinated APIs that don't even exist\n- ❌ Generic answers for old package versions\n\n## ✅ With Context7\n\nContext7 pulls up-to-date, version-specific documentation and code examples straight from the source — and places them directly into your prompt.\n\n```txt\nCreate a Next.js middleware that checks for a valid JWT in cookies\nand redirects unauthenticated users to `/login`. use context7\n```\n\n```txt\nConfigure a Cloudflare Worker script to cache\nJSON API responses for five minutes. use context7\n```\n\n```txt\nShow me the Supabase auth API for email/password sign-up.\n```\n\nContext7 fetches up-to-date code examples and documentation right into your LLM's context. No tab-switching, no hallucinated APIs that don't exist, no outdated code generation.\n\nWorks in two modes:\n\n- **CLI + Skills** — installs a skill that guides your agent to fetch docs using `ctx7` CLI commands (no MCP required)\n- **MCP** — registers a Context7 MCP server so your agent can call documentation tools natively\n\n## Installation\n\n> [!NOTE]\n> **API Key Recommended**: Get a free API key at [context7.com/dashboard](https://context7.com/dashboard) for higher rate limits.\n\nSet up Context7 for your coding agents with a single command. The `ctx7` CLI requires Node.js 18 or newer.\n\n```bash\nnpx ctx7 setup\n```\n\nAuthenticates via OAuth, generates an API key, and installs the appropriate skill. You can choose between CLI + Skills or MCP mode. Use `--cursor`, `--claude`, or `--opencode` to target a specific agent.\n\nTo remove the generated setup later, run `npx ctx7 remove`. If you globally installed the CLI with `npm install -g ctx7`, remove that package separately with `npm uninstall -g ctx7`.\n\nTo configure manually, use the Context7 server URL `https://mcp.context7.com/mcp` with your MCP client and pass your API key via the `Authorization: Bearer YOUR_API_KEY` header. See the link below for client-specific setup instructions.\n\n**[Manual Installation / Other Clients →](https://context7.com/docs/resources/all-clients)**\n\n## Important Tips\n\n### Use Library Id\n\nIf you already know exactly which library you want to use, add its Context7 ID to your prompt. That way, Context7 can skip the library-matching step and directly retrieve docs.\n\n```txt\nImplement basic authentication with Supabase. use library /supabase/supabase for API and docs.\n```\n\nThe slash syntax tells Context7 exactly which library to load docs for.\n\n### Specify a Version\n\nTo get documentation for a specific library version, just mention the version in your prompt:\n\n```txt\nHow do I set up Next.js 14 middleware? use context7\n```\n\nContext7 will automatically match the appropriate version.\n\n### Add a Rule\n\nIf you installed via `ctx7 setup`, a skill is configured automatically that triggers Context7 for library-related questions. To set up a rule manually instead, add one to your coding agent:\n\n- **Cursor**: `Cursor Settings > Rules`\n- **Claude Code**: `CLAUDE.md`\n- Or the equivalent in your coding agent\n\n**Example rule:**\n\n```txt\nAlways use Context7 when I need library/API documentation, code generation, setup or configuration steps without me having to explicitly ask.\n```\n\n## Available Tools\n\n### CLI Commands\n\n- `ctx7 library <name> <query>`: Searches the Context7 index by library name and returns matching libraries with their IDs.\n- `ctx7 docs <libraryId> <query>`: Retrieves documentation for a library using a Context7-compatible library ID (e.g., `/mongodb/docs`, `/vercel/next.js`).\n\n### MCP Tools\n\n- `resolve-library-id`: Resolves a general library name into a Context7-compatible library ID.\n - `query` (required): The user's question or task (used to rank results by relevance)\n - `libraryName` (required): The name of the library to search for\n- `query-docs`: Retrieves documentation for a library using a Context7-compatible library ID.\n - `libraryId` (required): Exact Context7-compatible library ID (e.g., `/mongodb/docs`, `/vercel/next.js`)\n - `query` (required): The question or task to get relevant documentation for\n\n## More Documentation\n\n- [CLI Reference](https://context7.com/docs/clients/cli) - Full CLI documentation\n- [MCP Clients](https://context7.com/docs/resources/all-clients) - Manual MCP installation for 30+ clients\n- [Adding Libraries](https://context7.com/docs/adding-libraries) - Submit your library to Context7\n- [Troubleshooting](https://context7.com/docs/resources/troubleshooting) - Common issues and solutions\n- [API Reference](https://context7.com/docs/api-guide) - REST API documentation\n- [Developer Guide](https://context7.com/docs/resources/developer) - Run Context7 MCP locally\n\n## Packages\n\n- [`@upstash/context7-mcp`](https://www.npmjs.com/package/@upstash/context7-mcp) - MCP server\n- [`ctx7`](https://www.npmjs.com/package/ctx7) - CLI\n- [`@upstash/context7-sdk`](https://www.npmjs.com/package/@upstash/context7-sdk) - TypeScript SDK\n- [`@upstash/context7-tools-ai-sdk`](https://www.npmjs.com/package/@upstash/context7-tools-ai-sdk) - Vercel AI SDK tools\n- [`@upstash/context7-pi`](https://www.npmjs.com/package/@upstash/context7-pi) - pi.dev extension\n\n## Disclaimer\n\n1- Context7 projects are community-contributed and while we strive to maintain high quality, we cannot guarantee the accuracy, completeness, or security of all library documentation. Projects listed in Context7 are developed and maintained by their respective owners, not by Context7. If you encounter any suspicious, inappropriate, or potentially harmful content, please use the \"Report\" button on the project page to notify us immediately. We take all reports seriously and will review flagged content promptly to maintain the integrity and safety of our platform. By using Context7, you acknowledge that you do so at your own discretion and risk.\n\n2- This repository hosts the MCP server’s source code. The supporting components — API backend, parsing engine, and crawling engine — are private and not part of this repository.\n\n## 🤝 Connect with Us\n\nStay updated and join our community:\n\n- 📢 Follow us on [X](https://x.com/context7ai) for the latest news and updates\n- 🌐 Visit our [Website](https://context7.com/)\n- 💬 Join our [Discord Community](https://upstash.com/discord)\n\n## 📺 Context7 In Media\n\n- [Better Stack: \"Free Tool Makes Cursor 10x Smarter\"](https://youtu.be/52FC3qObp9E)\n- [Cole Medin: \"This is Hands Down the BEST MCP Server for AI Coding Assistants\"](https://www.youtube.com/watch?v=G7gK8H6u7Rs)\n- [Income Stream Surfers: \"Context7 + SequentialThinking MCPs: Is This AGI?\"](https://www.youtube.com/watch?v=-ggvzyLpK6o)\n- [Julian Goldie SEO: \"Context7: New MCP AI Agent Update\"](https://www.youtube.com/watch?v=CTZm6fBYisc)\n- [JeredBlu: \"Context 7 MCP: Get Documentation Instantly + VS Code Setup\"](https://www.youtube.com/watch?v=-ls0D-rtET4)\n- [Income Stream Surfers: \"Context7: The New MCP Server That Will CHANGE AI Coding\"](https://www.youtube.com/watch?v=PS-2Azb-C3M)\n- [AICodeKing: \"Context7 + Cline & RooCode: This MCP Server Makes CLINE 100X MORE EFFECTIVE!\"](https://www.youtube.com/watch?v=qZfENAPMnyo)\n- [Sean Kochel: \"5 MCP Servers For Vibe Coding Glory (Just Plug-In & Go)\"](https://www.youtube.com/watch?v=LqTQi8qexJM)\n\n## 📄 License\n\nMIT"
|
|
25
|
+
},
|
|
26
|
+
"everything": {
|
|
27
|
+
"source": "https://raw.githubusercontent.com/modelcontextprotocol/servers/main/src/everything/README.md",
|
|
28
|
+
"format": "markdown",
|
|
29
|
+
"bytes": 5774,
|
|
30
|
+
"truncated": false,
|
|
31
|
+
"body": "# Everything MCP Server\n**[Architecture](https://raw.githubusercontent.com/modelcontextprotocol/servers/main/src/everything/docs/architecture.md)\n| [Project Structure](https://raw.githubusercontent.com/modelcontextprotocol/servers/main/src/everything/docs/structure.md)\n| [Startup Process](https://raw.githubusercontent.com/modelcontextprotocol/servers/main/src/everything/docs/startup.md)\n| [Server Features](https://raw.githubusercontent.com/modelcontextprotocol/servers/main/src/everything/docs/features.md)\n| [Extension Points](https://raw.githubusercontent.com/modelcontextprotocol/servers/main/src/everything/docs/extension.md)\n| [How It Works](https://raw.githubusercontent.com/modelcontextprotocol/servers/main/src/everything/docs/how-it-works.md)**\n\nThis MCP server attempts to exercise all the features of the MCP protocol. It is not intended to be a useful server, but rather a test server for builders of MCP clients. It implements prompts, tools, resources, sampling, and more to showcase MCP capabilities.\n\n## Tools, Resources, Prompts, and Other Features\n\nA complete list of the registered MCP primitives and other protocol features demonstrated can be found in the [Server Features](https://raw.githubusercontent.com/modelcontextprotocol/servers/main/src/everything/docs/features.md) document.\n\n## Usage with Claude Desktop (uses [stdio Transport](https://modelcontextprotocol.io/specification/2025-03-26/basic/transports#stdio))\n\nAdd to your `claude_desktop_config.json`:\n\n```json\n{\n \"mcpServers\": {\n \"everything\": {\n \"command\": \"npx\",\n \"args\": [\n \"-y\",\n \"@modelcontextprotocol/server-everything\"\n ]\n }\n }\n}\n```\n\nOn Windows, use `cmd /c` to launch `npx`:\n\n```json\n{\n \"mcpServers\": {\n \"everything\": {\n \"command\": \"cmd\",\n \"args\": [\n \"/c\",\n \"npx\",\n \"-y\",\n \"@modelcontextprotocol/server-everything\"\n ]\n }\n }\n}\n```\n\n## Usage with VS Code\n\nFor quick installation, use one of the one-click install buttons below...\n\n[](https://insiders.vscode.dev/redirect/mcp/install?name=everything&config=%7B%22command%22%3A%22npx%22%2C%22args%22%3A%5B%22-y%22%2C%22%40modelcontextprotocol%2Fserver-everything%22%5D%7D) [](https://insiders.vscode.dev/redirect/mcp/install?name=everything&config=%7B%22command%22%3A%22npx%22%2C%22args%22%3A%5B%22-y%22%2C%22%40modelcontextprotocol%2Fserver-everything%22%5D%7D&quality=insiders)\n\n[](https://insiders.vscode.dev/redirect/mcp/install?name=everything&config=%7B%22command%22%3A%22docker%22%2C%22args%22%3A%5B%22run%22%2C%22-i%22%2C%22--rm%22%2C%22mcp%2Feverything%22%5D%7D) [](https://insiders.vscode.dev/redirect/mcp/install?name=everything&config=%7B%22command%22%3A%22docker%22%2C%22args%22%3A%5B%22run%22%2C%22-i%22%2C%22--rm%22%2C%22mcp%2Feverything%22%5D%7D&quality=insiders)\n\nFor manual installation, you can configure the MCP server using one of these methods:\n\n**Method 1: User Configuration (Recommended)**\nAdd the configuration to your user-level MCP configuration file. Open the Command Palette (`Ctrl + Shift + P`) and run `MCP: Open User Configuration`. This will open your user `mcp.json` file where you can add the server configuration.\n\n**Method 2: Workspace Configuration**\nAlternatively, you can add the configuration to a file called `.vscode/mcp.json` in your workspace. This will allow you to share the configuration with others.\n\n> For more details about MCP configuration in VS Code, see the [official VS Code MCP documentation](https://code.visualstudio.com/docs/copilot/customization/mcp-servers).\n\n#### NPX\n\n```json\n{\n \"servers\": {\n \"everything\": {\n \"command\": \"npx\",\n \"args\": [\"-y\", \"@modelcontextprotocol/server-everything\"]\n }\n }\n}\n```\n\nOn Windows, use:\n\n```json\n{\n \"servers\": {\n \"everything\": {\n \"command\": \"cmd\",\n \"args\": [\"/c\", \"npx\", \"-y\", \"@modelcontextprotocol/server-everything\"]\n }\n }\n}\n```\n\n## Running from source with [HTTP+SSE Transport](https://modelcontextprotocol.io/specification/2024-11-05/basic/transports#http-with-sse) (deprecated as of [2025-03-26](https://modelcontextprotocol.io/specification/2025-03-26/basic/transports))\n\n```shell\ncd src/everything\nnpm install\nnpm run start:sse\n```\n\n## Run from source with [Streamable HTTP Transport](https://modelcontextprotocol.io/specification/2025-03-26/basic/transports#streamable-http)\n\n```shell\ncd src/everything\nnpm install\nnpm run start:streamableHttp\n```\n\n## Running as an installed package\n### Install \n```shell\nnpm install -g @modelcontextprotocol/server-everything@latest\n```\n\n### Run the default (stdio) server\n```shell\nnpx @modelcontextprotocol/server-everything\n```\n\n### Or specify stdio explicitly\n```shell\nnpx @modelcontextprotocol/server-everything stdio\n```\n\n### Run the SSE server\n```shell\nnpx @modelcontextprotocol/server-everything sse\n```\n\n### Run the streamable HTTP server\n```shell\nnpx @modelcontextprotocol/server-everything streamableHttp\n```\n\n## License\n\nThis MCP server is licensed under the MIT License. This means you are free to use, modify, and distribute the software, subject to the terms and conditions of the MIT License. For more details, please see the LICENSE file in the project repository."
|
|
32
|
+
},
|
|
33
|
+
"exa": {
|
|
34
|
+
"source": "https://raw.githubusercontent.com/exa-labs/exa-mcp-server/main/README.md",
|
|
35
|
+
"format": "markdown",
|
|
36
|
+
"bytes": 4215,
|
|
37
|
+
"truncated": false,
|
|
38
|
+
"body": "Exa MCP Server\n\nConnect AI agents to Exa for web search, content fetching, and multi-step research.\n\n \n \n \n \n\n Documentation\n · \n NPM Package\n · \n Get your API key\n\n## Installation\n\nConnect to Exa's hosted MCP server:\n\n```\nhttps://mcp.exa.ai/mcp\n```\n\nOr use a plugin when your client supports one.\n\n### Agent Plugin\n\nThis repository is an [Agent Plugin](https://agent-plugins.org/). Install it with any [compatible client](https://agent-plugins.org/compatible-clients).\n\n### Claude\n\nInstall from the [Claude Plugin Marketplace](https://claude.com/plugins/exa), or run:\n\n```bash\nclaude plugin install exa@claude-plugins-official\n```\n\n### Codex / ChatGPT\n\nInstall via [Plugins in ChatGPT](https://chatgpt.com/plugins/exa), or run:\n\n```bash\ncodex mcp add exa --url https://mcp.exa.ai/mcp\n```\n\n### Other MCP Clients\n\nMost clients can be configured manually with the standard `mcpServers` shape:\n\n```json\n{\n \"mcpServers\": {\n \"exa\": {\n \"type\": \"streamable-http\",\n \"url\": \"https://mcp.exa.ai/mcp\",\n }\n }\n}\n```\n\nClient-specific configs\n\nExa MCP works with most other clients, point them at `https://mcp.exa.ai/mcp`.\n\n| Client | Where to add it |\n| --- | --- |\n| Kiro | Use the [Kiro power](https://github.com/exa-labs/kiro-power-exa), or add manually to `~/.kiro/settings/mcp.json` |\n| LM Studio | [Add to LM Studio](https://lmstudio.ai/install-mcp?name=exa&config=eyJ1cmwiOiJodHRwczovL21jcC5leGEuYWkvbWNwIn0%3D), or add manually to `mcp.json` |\n| Replit | [Add to Replit](https://replit.com/integrations?mcp=) |\n| Grok Build | `/marketplace` → install **Exa**, then `/mcp` to sign in |\n| Gemini CLI | Add manually to `~/.gemini/settings.json` |\n| OpenCode | Add manually to `opencode.json` |\n| Windsurf | Add manually to `~/.codeium/windsurf/mcp_config.json` |\n| Google Antigravity | Add manually to `mcp_config.json` |\n| Zed | Add manually to `settings.json` under `context_servers` |\n| Warp | Settings → Agents → MCP servers |\n| v0 by Vercel | [Settings → MCP connections](https://v0.app/settings/mcp-connections) |\n\n## Available Tools\n\n### Default Tools\n\n| Tool | Description |\n| --- | --- |\n| `web_search_exa` | Search the web for any topic and get clean, ready-to-use content |\n| `web_fetch_exa` | Read a webpage's full content as clean markdown from one or more URLs |\n\n### Optional Tools (enable via the `tools` parameter)\n\n| Tool | Description |\n| --- | --- |\n| `agent_run` | Run an [Exa Agent](https://docs.exa.ai/reference/agent-api-guide) for multi-step research, list-building, enrichment, and structured output |\n| `web_search_advanced_exa` | Advanced search with filters, domains, dates, highlights, summaries, and subpage crawling |\n\nEnable tools by appending them to the MCP URL (this will replace the defaults, so include all you want):\n\n```\nhttps://mcp.exa.ai/mcp?tools=web_search_advanced_exa\nhttps://mcp.exa.ai/mcp?tools=web_search_exa,web_fetch_exa,agent_run\n```\n\nExa Agent requires authentication (OAuth or an [API key](https://dashboard.exa.ai/api-keys)).\n\n## Agent Skills\n\nSkills live in [`skills/`](./skills/) and load with Agent Plugin / Claude plugin installs.\n\n| Skill | Path | Use when |\n| --- | --- | --- |\n| `search` | [`skills/search/`](./skills/search/SKILL.md) | Deep research, lead gen, competitive analysis, multi-step web investigation |\n| `exa-agent` | [`skills/exa-agent/`](./skills/exa-agent/SKILL.md) | Exa Agent runs, enrichment, structured output, Connect providers |\n\nInvoke from your client's skill UI (or `/skill-name` where supported). MCP-only setups still get the tools; skills add orchestration on top.\n\n## Authentication\n\nThe hosted MCP server works anonymously with rate limits. For higher limits and access to Exa Agent, use either OAuth or an API key.\n\n**OAuth** is preferred: most clients prompt you to sign in to Exa. To force the login flow (useful for shared connectors and plugins), use `https://mcp.exa.ai/mcp?login` or `https://mcp.exa.ai/mcp/oauth`.\n\nIf you prefer, you can get an API key from the [dashboard](https://dashboard.exa.ai/api-keys) and pass it on the URL as `?exaApiKey=…`. You can also send it as a `Authorization: Bearer …` header or an `x-api-key` header.\n\nBuilt with ❤️ by Exa"
|
|
39
|
+
},
|
|
40
|
+
"fetch": {
|
|
41
|
+
"source": "https://raw.githubusercontent.com/modelcontextprotocol/servers/main/src/fetch/README.md",
|
|
42
|
+
"format": "markdown",
|
|
43
|
+
"bytes": 7284,
|
|
44
|
+
"truncated": false,
|
|
45
|
+
"body": "# Fetch MCP Server\n\nA Model Context Protocol server that provides web content fetching capabilities. This server enables LLMs to retrieve and process content from web pages, converting HTML to markdown for easier consumption.\n\nSource: https://github.com/modelcontextprotocol/servers/tree/main/src/fetch\n\nRequires MCP Python SDK 1.x (`mcp>=1.29.0,<2`). SDK 2.0 renamed APIs this server uses. The port to v2 is in progress.\n\n> [!CAUTION]\n> This server can access local/internal IP addresses and may represent a security risk. Exercise caution when using this MCP server to ensure this does not expose any sensitive data.\n\nThe fetch tool will truncate the response, but by using the `start_index` argument, you can specify where to start the content extraction. This lets models read a webpage in chunks, until they find the information they need.\n\n### Available Tools\n\n- `fetch` - Fetches a URL from the internet and extracts its contents as markdown.\n - `url` (string, required): URL to fetch\n - `max_length` (integer, optional): Maximum number of characters to return (default: 5000)\n - `start_index` (integer, optional): Start content from this character index (default: 0)\n - `raw` (boolean, optional): Get raw content without markdown conversion (default: false)\n\n### Prompts\n\n- **fetch**\n - Fetch a URL and extract its contents as markdown\n - Arguments:\n - `url` (string, required): URL to fetch\n\n## Installation\n\nOptionally: Install node.js, this will cause the fetch server to use a different HTML simplifier that is more robust.\n\n### Using uv (recommended)\n\nWhen using [`uv`](https://docs.astral.sh/uv/) no specific installation is needed. We will\nuse [`uvx`](https://docs.astral.sh/uv/guides/tools/) to directly run *mcp-server-fetch*.\n\n### Using PIP\n\nAlternatively you can install `mcp-server-fetch` via pip:\n\n```\npip install mcp-server-fetch\n```\n\nAfter installation, you can run it as a script using:\n\n```\npython -m mcp_server_fetch\n```\n\n## Configuration\n\n### Configure for Claude.app\n\nAdd to your Claude settings:\n\nUsing uvx\n\n```json\n{\n \"mcpServers\": {\n \"fetch\": {\n \"command\": \"uvx\",\n \"args\": [\"mcp-server-fetch\"]\n }\n }\n}\n```\n\nUsing docker\n\n```json\n{\n \"mcpServers\": {\n \"fetch\": {\n \"command\": \"docker\",\n \"args\": [\"run\", \"-i\", \"--rm\", \"mcp/fetch\"]\n }\n }\n}\n```\n\nUsing pip installation\n\n```json\n{\n \"mcpServers\": {\n \"fetch\": {\n \"command\": \"python\",\n \"args\": [\"-m\", \"mcp_server_fetch\"]\n }\n }\n}\n```\n\n### Configure for VS Code\n\nFor quick installation, use one of the one-click install buttons below...\n\n[](https://insiders.vscode.dev/redirect/mcp/install?name=fetch&config=%7B%22command%22%3A%22uvx%22%2C%22args%22%3A%5B%22mcp-server-fetch%22%5D%7D) [](https://insiders.vscode.dev/redirect/mcp/install?name=fetch&config=%7B%22command%22%3A%22uvx%22%2C%22args%22%3A%5B%22mcp-server-fetch%22%5D%7D&quality=insiders)\n\n[](https://insiders.vscode.dev/redirect/mcp/install?name=fetch&config=%7B%22command%22%3A%22docker%22%2C%22args%22%3A%5B%22run%22%2C%22-i%22%2C%22--rm%22%2C%22mcp%2Ffetch%22%5D%7D) [](https://insiders.vscode.dev/redirect/mcp/install?name=fetch&config=%7B%22command%22%3A%22docker%22%2C%22args%22%3A%5B%22run%22%2C%22-i%22%2C%22--rm%22%2C%22mcp%2Ffetch%22%5D%7D&quality=insiders)\n\nFor manual installation, add the following JSON block to your User Settings (JSON) file in VS Code. You can do this by pressing `Ctrl + Shift + P` and typing `Preferences: Open User Settings (JSON)`.\n\nOptionally, you can add it to a file called `.vscode/mcp.json` in your workspace. This will allow you to share the configuration with others.\n\n> Note that the `mcp` key is needed when using the `mcp.json` file.\n\nUsing uvx\n\n```json\n{\n \"mcp\": {\n \"servers\": {\n \"fetch\": {\n \"command\": \"uvx\",\n \"args\": [\"mcp-server-fetch\"]\n }\n }\n }\n}\n```\n\nUsing Docker\n\n```json\n{\n \"mcp\": {\n \"servers\": {\n \"fetch\": {\n \"command\": \"docker\",\n \"args\": [\"run\", \"-i\", \"--rm\", \"mcp/fetch\"]\n }\n }\n }\n}\n```\n\n### Customization - robots.txt\n\nBy default, the server will obey a websites robots.txt file if the request came from the model (via a tool), but not if\nthe request was user initiated (via a prompt). This can be disabled by adding the argument `--ignore-robots-txt` to the\n`args` list in the configuration.\n\n### Customization - User-agent\n\nBy default, depending on if the request came from the model (via a tool), or was user initiated (via a prompt), the\nserver will use either the user-agent\n```\nModelContextProtocol/1.0 (Autonomous; +https://github.com/modelcontextprotocol/servers)\n```\nor\n```\nModelContextProtocol/1.0 (User-Specified; +https://github.com/modelcontextprotocol/servers)\n```\n\nThis can be customized by adding the argument `--user-agent=YourUserAgent` to the `args` list in the configuration.\n\n### Customization - Proxy\n\nThe server can be configured to use a proxy by using the `--proxy-url` argument.\n\n## Windows Configuration\n\nIf you're experiencing timeout issues on Windows, you may need to set the `PYTHONIOENCODING` environment variable to ensure proper character encoding:\n\nWindows configuration (uvx)\n\n```json\n{\n \"mcpServers\": {\n \"fetch\": {\n \"command\": \"uvx\",\n \"args\": [\"mcp-server-fetch\"],\n \"env\": {\n \"PYTHONIOENCODING\": \"utf-8\"\n }\n }\n }\n}\n```\n\nWindows configuration (pip)\n\n```json\n{\n \"mcpServers\": {\n \"fetch\": {\n \"command\": \"python\",\n \"args\": [\"-m\", \"mcp_server_fetch\"],\n \"env\": {\n \"PYTHONIOENCODING\": \"utf-8\"\n }\n }\n }\n}\n```\n\nThis addresses character encoding issues that can cause the server to timeout on Windows systems.\n\n## Debugging\n\nYou can use the MCP inspector to debug the server. For uvx installations:\n\n```\nnpx @modelcontextprotocol/inspector uvx mcp-server-fetch\n```\n\nOr if you've installed the package in a specific directory or are developing on it:\n\n```\ncd path/to/servers/src/fetch\nnpx @modelcontextprotocol/inspector uv run mcp-server-fetch\n```\n\n## Contributing\n\nWe encourage contributions to help expand and improve mcp-server-fetch. Whether you want to add new tools, enhance existing functionality, or improve documentation, your input is valuable.\n\nFor examples of other MCP servers and implementation patterns, see:\nhttps://github.com/modelcontextprotocol/servers\n\nPull requests are welcome! Feel free to contribute new ideas, bug fixes, or enhancements to make mcp-server-fetch even more powerful and useful.\n\n## License\n\nmcp-server-fetch is licensed under the MIT License. This means you are free to use, modify, and distribute the software, subject to the terms and conditions of the MIT License. For more details, please see the LICENSE file in the project repository."
|
|
46
|
+
},
|
|
47
|
+
"filesystem": {
|
|
48
|
+
"source": "https://raw.githubusercontent.com/modelcontextprotocol/servers/main/src/filesystem/README.md",
|
|
49
|
+
"format": "markdown",
|
|
50
|
+
"bytes": 15065,
|
|
51
|
+
"truncated": false,
|
|
52
|
+
"body": "# Filesystem MCP Server\n\nNode.js server implementing Model Context Protocol (MCP) for filesystem operations.\n\nPublished on npm as [`@modelcontextprotocol/server-filesystem`](https://www.npmjs.com/package/@modelcontextprotocol/server-filesystem).\n\n## Features\n\n- Read/write files\n- Create/list/delete directories\n- Move files/directories\n- Search files\n- Get file metadata\n- Dynamic directory access control via [Roots](https://modelcontextprotocol.io/docs/learn/client-concepts#roots)\n\n## Directory Access Control\n\nThe server uses a flexible directory access control system. Directories can be specified via command-line arguments or dynamically via [Roots](https://modelcontextprotocol.io/docs/learn/client-concepts#roots).\n\n### Method 1: Command-line Arguments\nSpecify Allowed directories when starting the server:\n```bash\nmcp-server-filesystem /path/to/dir1 /path/to/dir2\n```\n\n### Method 2: MCP Roots (Recommended)\nMCP clients that support [Roots](https://modelcontextprotocol.io/docs/learn/client-concepts#roots) can dynamically update the Allowed directories. \n\nRoots notified by Client to Server, completely replace any server-side Allowed directories when provided.\n\n**Important**: If server starts without command-line arguments AND client doesn't support roots protocol (or provides empty roots), the server will throw an error during initialization.\n\nThis is the recommended method, as this enables runtime directory updates via `roots/list_changed` notifications without server restart, providing a more flexible and modern integration experience.\n\n### How It Works\n\nThe server's directory access control follows this flow:\n\n1. **Server Startup**\n - Server starts with directories from command-line arguments (if provided)\n - If no arguments provided, server starts with empty allowed directories\n\n2. **Client Connection & Initialization**\n - Client connects and sends `initialize` request with capabilities\n - Server checks if client supports roots protocol (`capabilities.roots`)\n \n3. **Roots Protocol Handling** (if client supports roots)\n - **On initialization**: Server requests roots from client via `roots/list`\n - Client responds with its configured roots\n - Server replaces ALL allowed directories with client's roots\n - **On runtime updates**: Client can send `notifications/roots/list_changed`\n - Server requests updated roots and replaces allowed directories again\n\n4. **Fallback Behavior** (if client doesn't support roots)\n - Server continues using command-line directories only\n - No dynamic updates possible\n\n5. **Access Control**\n - All filesystem operations are restricted to allowed directories\n - Use `list_allowed_directories` tool to see current directories\n - Server requires at least ONE allowed directory to operate\n\n**Note**: The server will only allow operations within directories specified either via `args` or via Roots.\n\n## API\n\n### Tools\n\n- **read_text_file**\n - Read complete contents of a file as text\n - Inputs:\n - `path` (string)\n - `head` (number, optional): First N lines\n - `tail` (number, optional): Last N lines\n - Always treats the file as UTF-8 text regardless of extension\n - Cannot specify both `head` and `tail` simultaneously\n\n- **read_media_file**\n - Read a file and return it as a base64-encoded content block with its MIME type\n - Inputs:\n - `path` (string)\n - Streams the file and returns base64 data with the corresponding MIME type. Image and\n audio files are returned as `image`/`audio` content; any other file type is returned as\n an embedded `resource` (a valid MCP content block for arbitrary binary data)\n\n- **read_multiple_files**\n - Read multiple files simultaneously\n - Input: `paths` (string[])\n - Failed reads won't stop the entire operation\n\n- **write_file**\n - Create new file or overwrite existing (exercise caution with this)\n - Inputs:\n - `path` (string): File location\n - `content` (string): File content\n\n- **edit_file**\n - Make selective edits using advanced pattern matching and formatting\n - Features:\n - Line-based and multi-line content matching\n - Whitespace normalization with indentation preservation\n - Multiple simultaneous edits with correct positioning\n - Indentation style detection and preservation\n - Git-style diff output with context\n - Preview changes with dry run mode\n - Inputs:\n - `path` (string): File to edit\n - `edits` (array): List of edit operations\n - `oldText` (string): Text to search for (can be substring)\n - `newText` (string): Text to replace with\n - `dryRun` (boolean): Preview changes without applying (default: false)\n - Returns detailed diff and match information for dry runs, otherwise applies changes\n - Best Practice: Always use dryRun first to preview changes before applying them\n\n- **create_directory**\n - Create new directory or ensure it exists\n - Input: `path` (string)\n - Creates parent directories if needed\n - Succeeds silently if directory exists\n\n- **list_directory**\n - List directory contents with [FILE] or [DIR] prefixes\n - Input: `path` (string)\n\n- **list_directory_with_sizes**\n - List directory contents with [FILE] or [DIR] prefixes, including file sizes\n - Inputs:\n - `path` (string): Directory path to list\n - `sortBy` (string, optional): Sort entries by \"name\" or \"size\" (default: \"name\")\n - Returns detailed listing with file sizes and summary statistics\n - Shows total files, directories, and combined size\n\n- **move_file**\n - Move or rename files and directories\n - Inputs:\n - `source` (string)\n - `destination` (string)\n - Fails if destination exists\n\n- **search_files**\n - Recursively search for files/directories that match or do not match patterns\n - Inputs:\n - `path` (string): Starting directory\n - `pattern` (string): Search pattern\n - `excludePatterns` (string[]): Exclude any patterns.\n - Glob-style pattern matching\n - Returns full paths to matches\n\n- **directory_tree**\n - Get recursive JSON tree structure of directory contents\n - Inputs:\n - `path` (string): Starting directory\n - `excludePatterns` (string[]): Exclude any patterns. Glob formats are supported.\n - Returns:\n - JSON array where each entry contains:\n - `name` (string): File/directory name\n - `type` ('file'|'directory'): Entry type\n - `children` (array): Present only for directories\n - Empty array for empty directories\n - Omitted for files\n - Output is formatted with 2-space indentation for readability\n \n- **get_file_info**\n - Get detailed file/directory metadata\n - Input: `path` (string)\n - Returns:\n - Size\n - Creation time\n - Modified time\n - Access time\n - Type (file/directory)\n - Permissions\n\n- **list_allowed_directories**\n - List all directories the server is allowed to access\n - No input required\n - Returns:\n - Directories that this server can read/write from\n\n### Tool annotations (MCP hints)\n\nThis server sets [MCP ToolAnnotations](https://modelcontextprotocol.io/specification/2025-03-26/server/tools#toolannotations)\non each tool so clients can:\n\n- Distinguish **read‑only** tools from write‑capable tools.\n- Understand which write operations are **idempotent** (safe to retry with the same arguments).\n- Highlight operations that may be **destructive** (overwriting or heavily mutating data).\n- Signal that a tool does **not** reach an open or external world (every filesystem tool sets `openWorldHint: false`).\n\nThe mapping for filesystem tools is:\n\n| Tool | readOnlyHint | idempotentHint | destructiveHint | Notes |\n|-----------------------------|--------------|----------------|-----------------|--------------------------------------------------|\n| `read_text_file` | `true` | – | – | Pure read |\n| `read_media_file` | `true` | – | – | Pure read |\n| `read_multiple_files` | `true` | – | – | Pure read |\n| `list_directory` | `true` | – | – | Pure read |\n| `list_directory_with_sizes` | `true` | – | – | Pure read |\n| `directory_tree` | `true` | – | – | Pure read |\n| `search_files` | `true` | – | – | Pure read |\n| `get_file_info` | `true` | – | – | Pure read |\n| `list_allowed_directories` | `true` | – | – | Pure read |\n| `create_directory` | `false` | `true` | `false` | Re‑creating the same dir is a no‑op |\n| `write_file` | `false` | `true` | `true` | Overwrites existing files |\n| `edit_file` | `false` | `false` | `true` | Re‑applying edits can fail or double‑apply |\n| `move_file` | `false` | `false` | `true` | Deletes source file |\n\n> Note: `idempotentHint` and `destructiveHint` are meaningful only when `readOnlyHint` is `false`, as defined by the MCP spec. Every tool also sets `openWorldHint: false` — this server only accesses the local filesystem within its allowed directories, never an open or external world.\n\n## Usage with Claude Desktop\nAdd this to your `claude_desktop_config.json`:\n\nNote: you can provide sandboxed directories to the server by mounting them to `/projects`. Adding the `ro` flag will make the directory readonly by the server.\n\n### Docker\nNote: all directories must be mounted to `/projects` by default.\n\n```json\n{\n \"mcpServers\": {\n \"filesystem\": {\n \"command\": \"docker\",\n \"args\": [\n \"run\",\n \"-i\",\n \"--rm\",\n \"--mount\", \"type=bind,src=/Users/username/Desktop,dst=/projects/Desktop\",\n \"--mount\", \"type=bind,src=/path/to/other/allowed/dir,dst=/projects/other/allowed/dir,ro\",\n \"--mount\", \"type=bind,src=/path/to/file.txt,dst=/projects/path/to/file.txt\",\n \"mcp/filesystem\",\n \"/projects\"\n ]\n }\n }\n}\n```\n\n### NPX\n\n```json\n{\n \"mcpServers\": {\n \"filesystem\": {\n \"command\": \"npx\",\n \"args\": [\n \"-y\",\n \"@modelcontextprotocol/server-filesystem\",\n \"/Users/username/Desktop\",\n \"/path/to/other/allowed/dir\"\n ]\n }\n }\n}\n```\n\nOn Windows, use `cmd /c` to launch `npx`:\n\n```json\n{\n \"mcpServers\": {\n \"filesystem\": {\n \"command\": \"cmd\",\n \"args\": [\n \"/c\",\n \"npx\",\n \"-y\",\n \"@modelcontextprotocol/server-filesystem\",\n \"/Users/username/Desktop\",\n \"/path/to/other/allowed/dir\"\n ]\n }\n }\n}\n```\n\n## Usage with VS Code\n\nFor quick installation, click the installation buttons below...\n\n[](https://insiders.vscode.dev/redirect/mcp/install?name=filesystem&config=%7B%22command%22%3A%22npx%22%2C%22args%22%3A%5B%22-y%22%2C%22%40modelcontextprotocol%2Fserver-filesystem%22%2C%22%24%7BworkspaceFolder%7D%22%5D%7D) [](https://insiders.vscode.dev/redirect/mcp/install?name=filesystem&config=%7B%22command%22%3A%22npx%22%2C%22args%22%3A%5B%22-y%22%2C%22%40modelcontextprotocol%2Fserver-filesystem%22%2C%22%24%7BworkspaceFolder%7D%22%5D%7D&quality=insiders)\n\n[](https://insiders.vscode.dev/redirect/mcp/install?name=filesystem&config=%7B%22command%22%3A%22docker%22%2C%22args%22%3A%5B%22run%22%2C%22-i%22%2C%22--rm%22%2C%22--mount%22%2C%22type%3Dbind%2Csrc%3D%24%7BworkspaceFolder%7D%2Cdst%3D%2Fprojects%2Fworkspace%22%2C%22mcp%2Ffilesystem%22%2C%22%2Fprojects%22%5D%7D) [](https://insiders.vscode.dev/redirect/mcp/install?name=filesystem&config=%7B%22command%22%3A%22docker%22%2C%22args%22%3A%5B%22run%22%2C%22-i%22%2C%22--rm%22%2C%22--mount%22%2C%22type%3Dbind%2Csrc%3D%24%7BworkspaceFolder%7D%2Cdst%3D%2Fprojects%2Fworkspace%22%2C%22mcp%2Ffilesystem%22%2C%22%2Fprojects%22%5D%7D&quality=insiders)\n\nFor manual installation, you can configure the MCP server using one of these methods:\n\n**Method 1: User Configuration (Recommended)**\nAdd the configuration to your user-level MCP configuration file. Open the Command Palette (`Ctrl + Shift + P`) and run `MCP: Open User Configuration`. This will open your user `mcp.json` file where you can add the server configuration.\n\n**Method 2: Workspace Configuration**\nAlternatively, you can add the configuration to a file called `.vscode/mcp.json` in your workspace. This will allow you to share the configuration with others.\n\n> For more details about MCP configuration in VS Code, see the [official VS Code MCP documentation](https://code.visualstudio.com/docs/copilot/customization/mcp-servers).\n\nYou can provide sandboxed directories to the server by mounting them to `/projects`. Adding the `ro` flag will make the directory readonly by the server.\n\n### Docker\nNote: all directories must be mounted to `/projects` by default. \n\n```json\n{\n \"servers\": {\n \"filesystem\": {\n \"command\": \"docker\",\n \"args\": [\n \"run\",\n \"-i\",\n \"--rm\",\n \"--mount\", \"type=bind,src=${workspaceFolder},dst=/projects/workspace\",\n \"mcp/filesystem\",\n \"/projects\"\n ]\n }\n }\n}\n```\n\n### NPX\n\n```json\n{\n \"servers\": {\n \"filesystem\": {\n \"command\": \"npx\",\n \"args\": [\n \"-y\",\n \"@modelcontextprotocol/server-filesystem\",\n \"${workspaceFolder}\"\n ]\n }\n }\n}\n```\n\nOn Windows, use:\n\n```json\n{\n \"servers\": {\n \"filesystem\": {\n \"command\": \"cmd\",\n \"args\": [\n \"/c\",\n \"npx\",\n \"-y\",\n \"@modelcontextprotocol/server-filesystem\",\n \"${workspaceFolder}\"\n ]\n }\n }\n}\n```\n\n## Build\n\nDocker build:\n\n```bash\ndocker build -t mcp/filesystem -f src/filesystem/Dockerfile .\n```\n\n## License\n\nThis MCP server is licensed under the MIT License. This means you are free to use, modify, and distribute the software, subject to the terms and conditions of the MIT License. For more details, please see the LICENSE file in the project repository."
|
|
53
|
+
},
|
|
54
|
+
"firecrawl": {
|
|
55
|
+
"source": "https://raw.githubusercontent.com/mendableai/firecrawl-mcp-server/main/README.md",
|
|
56
|
+
"format": "markdown",
|
|
57
|
+
"bytes": 36474,
|
|
58
|
+
"truncated": true,
|
|
59
|
+
"body": "# Firecrawl MCP Server\n\nA Model Context Protocol (MCP) server that brings [Firecrawl](https://github.com/firecrawl/firecrawl) to MCP-compatible AI agents — search, scrape, and interact with the live web for clean, agent-ready context.\n\n> Big thanks to [@vrknetha](https://github.com/vrknetha), [@knacklabs](https://www.knacklabs.ai/) for the initial implementation!\n\n## Features\n\n- Search the web and get full page content\n- Search an index built for coding agents: GitHub issues, merged pull requests, READMEs, and docs\n- Scrape any URL into clean, structured data\n- Interact with pages — click, navigate, and operate\n- Deep research with autonomous agent\n- Automatic retries and rate limiting\n- Cloud and self-hosted support\n- SSE support\n\n> Play around with [our MCP Server on MCP.so's playground](https://mcp.so/playground?server=firecrawl-mcp-server) or on [Klavis AI](https://www.klavis.ai/mcp-servers).\n\n## Installation\n\n### Hosted MCP (keyless free tier)\n\nConnect to the remote hosted server with no setup:\n\n```\nhttps://mcp.firecrawl.dev/v2/mcp\n```\n\nOn the keyless free tier, `scrape`, `search`, and `parse` work without an API key (rate-limited). Other tools such as `crawl`, `map`, and `agent` still need a key.\n\nPrefer OAuth or an API key whenever the human can sign up. It unlocks the full tool set and higher limits.\n\nFor an interactive account connection, configure your MCP client to use this server URL. This is an MCP endpoint, **not a browser page**; use the client's account-connection flow and do not add a second Firecrawl server entry when reconnecting:\n\n```\nhttps://mcp.firecrawl.dev/v2/mcp-oauth\n```\n\nFor an API-key connection (for example, an unattended integration), keep the server URL as:\n\n```\nhttps://mcp.firecrawl.dev/v2/mcp\n```\n\nThen configure the client's secure header or secret setting with:\n\n```\nAuthorization: Bearer <FIRECRAWL_API_KEY>\n```\n\nNever put an API key in the server URL. Never put an API key in an agent chat. Configure it directly in the client or secret manager. See the [hosted MCP setup guide](https://docs.firecrawl.dev/mcp-server) and the [agent onboarding guide](https://www.firecrawl.dev/agent-onboarding/SKILL.md) for client-specific instructions.\n\n#### Search-only endpoint\n\nA read-only, search-only surface is also hosted at:\n\n```\nhttps://mcp.firecrawl.dev/v2/mcp-search\n```\n\nIt exposes a fixed set of six read-only tools: `firecrawl_search`, `firecrawl_developer_search`, and the four `firecrawl_research_*` tools. It performs no page-content fetching and has its own OAuth identity; the full endpoint above is unchanged. See [docs/search-profile.md](https://raw.githubusercontent.com/mendableai/firecrawl-mcp-server/main/docs/search-profile.md) for the full contract.\n\n### Running with npx\n\n```bash\nenv FIRECRAWL_API_KEY=fc-YOUR_API_KEY npx -y firecrawl-mcp\n```\n\n### Manual Installation\n\n```bash\nnpm install -g firecrawl-mcp\n```\n\n### Running on Cursor\n\nConfiguring Cursor 🖥️\nNote: Requires Cursor version 0.45.6+\nFor the most up-to-date configuration instructions, please refer to the official Cursor documentation on configuring MCP servers:\n[Cursor MCP Server Configuration Guide](https://docs.cursor.com/context/model-context-protocol#configuring-mcp-servers)\n\nTo configure Firecrawl MCP in Cursor **v0.48.6**\n\n1. Open Cursor Settings\n2. Go to Features > MCP Servers\n3. Click \"+ Add new global MCP server\"\n4. Enter the following code:\n ```json\n {\n \"mcpServers\": {\n \"firecrawl-mcp\": {\n \"command\": \"npx\",\n \"args\": [\"-y\", \"firecrawl-mcp\"],\n \"env\": {\n \"FIRECRAWL_API_KEY\": \"YOUR-API-KEY\"\n }\n }\n }\n }\n ```\n\nTo configure Firecrawl MCP in Cursor **v0.45.6**\n\n1. Open Cursor Settings\n2. Go to Features > MCP Servers\n3. Click \"+ Add New MCP Server\"\n4. Enter the following:\n - Name: \"firecrawl-mcp\" (or your preferred name)\n - Type: \"command\"\n - Command: `env FIRECRAWL_API_KEY=your-api-key npx -y firecrawl-mcp`\n\n> If you are using Windows and are running into issues, try `cmd /c \"set FIRECRAWL_API_KEY=your-api-key && npx -y firecrawl-mcp\"`\n\nReplace `your-api-key` with your Firecrawl API key. If you don't have one yet, you can create an account and get it from https://www.firecrawl.dev/app/api-keys\n\nAfter adding, refresh the MCP server list to see the new tools. The Composer Agent will automatically use Firecrawl MCP when appropriate, but you can explicitly request it by describing your web scraping needs. Access the Composer via Command+L (Mac), select \"Agent\" next to the submit button, and enter your query.\n\n### Running on Windsurf\n\nAdd this to your `./codeium/windsurf/model_config.json`:\n\n```json\n{\n \"mcpServers\": {\n \"mcp-server-firecrawl\": {\n \"command\": \"npx\",\n \"args\": [\"-y\", \"firecrawl-mcp\"],\n \"env\": {\n \"FIRECRAWL_API_KEY\": \"YOUR_API_KEY\"\n }\n }\n }\n}\n```\n\n### Running with Streamable HTTP Local Mode\n\nTo run the server using Streamable HTTP locally instead of the default stdio transport:\n\n```bash\nenv HTTP_STREAMABLE_SERVER=true FIRECRAWL_API_KEY=fc-YOUR_API_KEY npx -y firecrawl-mcp\n```\n\nUse the url: http://localhost:3000/mcp\n\n### Installing via Smithery (Legacy)\n\nTo install Firecrawl for Claude Desktop automatically via [Smithery](https://smithery.ai/server/@mendableai/mcp-server-firecrawl):\n\n```bash\nnpx -y @smithery/cli install @mendableai/mcp-server-firecrawl --client claude\n```\n\n### Running on VS Code\n\nFor one-click installation, click one of the install buttons below...\n\n[](https://insiders.vscode.dev/redirect/mcp/install?name=firecrawl&inputs=%5B%7B%22type%22%3A%22promptString%22%2C%22id%22%3A%22apiKey%22%2C%22description%22%3A%22Firecrawl%20API%20Key%22%2C%22password%22%3Atrue%7D%5D&config=%7B%22command%22%3A%22npx%22%2C%22args%22%3A%5B%22-y%22%2C%22firecrawl-mcp%22%5D%2C%22env%22%3A%7B%22FIRECRAWL_API_KEY%22%3A%22%24%7Binput%3AapiKey%7D%22%7D%7D) [](https://insiders.vscode.dev/redirect/mcp/install?name=firecrawl&inputs=%5B%7B%22type%22%3A%22promptString%22%2C%22id%22%3A%22apiKey%22%2C%22description%22%3A%22Firecrawl%20API%20Key%22%2C%22password%22%3Atrue%7D%5D&config=%7B%22command%22%3A%22npx%22%2C%22args%22%3A%5B%22-y%22%2C%22firecrawl-mcp%22%5D%2C%22env%22%3A%7B%22FIRECRAWL_API_KEY%22%3A%22%24%7Binput%3AapiKey%7D%22%7D%7D&quality=insiders)\n\nFor manual installation, add the following JSON block to your User Settings (JSON) file in VS Code. You can do this by pressing `Ctrl + Shift + P` and typing `Preferences: Open User Settings (JSON)`.\n\n```json\n{\n \"mcp\": {\n \"inputs\": [\n {\n \"type\": \"promptString\",\n \"id\": \"apiKey\",\n \"description\": \"Firecrawl API Key\",\n \"password\": true\n }\n ],\n \"servers\": {\n \"firecrawl\": {\n \"command\": \"npx\",\n \"args\": [\"-y\", \"firecrawl-mcp\"],\n \"env\": {\n \"FIRECRAWL_API_KEY\": \"${input:apiKey}\"\n }\n }\n }\n }\n}\n```\n\nOptionally, you can add it to a file called `.vscode/mcp.json` in your workspace. This will allow you to share the configuration with others:\n\n```json\n{\n \"inputs\": [\n {\n \"type\": \"promptString\",\n \"id\": \"apiKey\",\n \"description\": \"Firecrawl API Key\",\n \"password\": true\n }\n ],\n \"servers\": {\n \"firecrawl\": {\n \"command\": \"npx\",\n \"args\": [\"-y\", \"firecrawl-mcp\"],\n \"env\": {\n \"FIRECRAWL_API_KEY\": \"${input:apiKey}\"\n }\n }\n }\n}\n```\n\n## Configuration\n\n### Environment Variables\n\n#### Required for Cloud API\n\n- `FIRECRAWL_API_KEY`: Your Firecrawl API key\n - Required when using cloud API (default)\n - Optional when using self-hosted instance with `FIRECRAWL_API_URL`\n- `FIRECRAWL_API_URL` (Optional): Custom API endpoint for self-hosted instances\n - Example: `https://firecrawl.your-domain.com`\n - If not provided, the cloud API will be used (requires API key)\n\n#### MCP OAuth (Bearer access tokens)\n\nHosted Firecrawl can issue OAuth **access tokens** (`fco_…`) via the authorization server on [firecrawl.dev](https://firecrawl.dev/). This MCP server forwards whichever credential it resolves to the Firecrawl API as `Authorization: Bearer …`.\n\n- **HTTP stream transports** (`CLOUD_SERVICE=true`, `HTTP_STREAMABLE_SERVER=true`, or `SSE_LOCAL=true`): Clients should send `Authorization: Bearer <fco_access_token>` on MCP requests. An OAuth bearer token takes precedence over `x-firecrawl-api-key` / `x-api-key` when both are present.\n- **stdio:** Use `FIRECRAWL_OAUTH_TOKEN` for a static access token, or keep using `FIRECRAWL_API_KEY` for an API key.\n\nUse **access** tokens (`fco_…`) only. Refresh tokens (`fcr_…`) must be exchanged at the token endpoint, not passed to the scrape/search API.\n\n#### Search-only surface (hosted)\n\nIn hosted mode (`CLOUD_SERVICE=true`) a second in-process instance serves the [search-only endpoint](#search-only-endpoint). The bundled service has a fixed deployment contract: nginx routes `/v2/mcp-search` to the instance on local port `3001`, and the OAuth protected-resource identifier is `https://mcp.firecrawl.dev/v2/mcp-search`.\n\n`FIRECRAWL_MCP_SEARCH_ENABLED` (default `true`) is the supported operational toggle; set it to `false` to prevent the search instance from starting. The Node process also accepts `FIRECRAWL_MCP_SEARCH_PORT`, `FIRECRAWL_MCP_SEARCH_ENDPOINT`, and `FIRECRAWL_MCP_SEARCH_RESOURCE_URL` for isolated tests. Those overrides do not reconfigure the bundled nginx routes or the authorization server allowlist and must not be used independently in the hosted deployment.\n\nThe search instance requires authentication for every request (including `tools/list`) and rejects OAuth tokens whose audience does not match its own resource.\n\n### Configuration Examples\n\nFor cloud API usage:\n\n```bash\nexport FIRECRAWL_API_KEY=your-api-key\n```\n\nFor self-hosted instance:\n\n```bash\n# Required for self-hosted\nexport FIRECRAWL_API_URL=https://firecrawl.your-domain.com\n\n# Optional authentication for self-hosted\nexport FIRECRAWL_API_KEY=your-api-key # If your instance requires auth\n```\n\n### Usage with Claude Desktop\n\nAdd this to your `claude_desktop_config.json`:\n\n```json\n{\n \"mcpServers\": {\n \"mcp-server-firecrawl\": {\n \"command\": \"npx\",\n \"args\": [\"-y\", \"firecrawl-mcp\"],\n \"env\": {\n \"FIRECRAWL_API_KEY\": \"YOUR_API_KEY_HERE\"\n }\n }\n }\n}\n```\n\n## How to Choose a Tool\n\nUse this guide to select the right tool for your task:\n\n- **If you know the exact URL you want:** use **scrape** (with JSON format for structured data)\n- **If you have multiple known URLs:** call **scrape** for each URL. If you specifically need one bulk API operation, use the Firecrawl API batch endpoint outside MCP.\n- **If you need to discover URLs on a site:** use **map**\n- **If you want to search the web for info:** use **search**\n- **If you have a programming question** (a library, an API contract, an error message, a known bug): use **developer search**\n- **If you need scientific papers** (biomedical, life-science, clinical, or arXiv literature): use **research tools** — they search paper abstracts and full text. `search` with `categories: [\"research\"]` is a different thing: a website filter over ordinary web results.\n- **If you need complex research across multiple unknown sources:** use **agent**\n- **If you want to analyze a whole site or section:** use **crawl** (with limits!)\n- **If you need interactive browser automation** (click, type, navigate): use **interact** with a URL for a fresh page, or **scrape** + **interact** when you already scraped the page or need tighter scrape control\n\n### Quick Reference Table\n\n| Tool | Best for | Returns |\n| ------------ | ---------------------------------------------- | ------------------------------ |\n| scrape | Single page content | JSON (preferred) or markdown |\n| interact | Interact with a URL or scraped page | Execution result + scrapeId for URL mode |\n| map | Discovering URLs on a site | URL[] |\n| crawl | Multi-page extraction (with limits) | final crawl status/data after internal polling |\n| parse | Files and hosted upload refs | markdown, JSON, or document output |\n| search | Web search for info | results[] |\n| developer | Programming questions over developer sources | results[] with passages |\n| agent | Complex multi-source research | JSON (structured data) |\n| monitor | Recurring page checks | monitor/check metadata and diffs |\n| research | Paper and GitHub repository research | research results and repo matches |\n\n### Format Selection Guide\n\nWhen using `scrape`, choose the right format:\n\n- **JSON format (recommended for most cases):** Use when you need specific data from a page. Define a schema based on what you need to extract. This keeps responses small and avoids context window overflow.\n- **Markdown format (use sparingly):** Only when you genuinely need the full page content, such as reading an entire article for summarization or analyzing page structure.\n\n## Available Tools\n\n### 1. Scrape Tool (`firecrawl_scrape`)\n\nScrape content from a single URL with advanced options.\n\n**Best for:**\n\n- Single page content extraction, when you know exactly which page contains the information.\n\n**Not recommended for:**\n\n- Extracting content from multiple pages (use repeated scrape calls for known URLs, or map + scrape to discover URLs first, or crawl for full page content)\n- When you're unsure which page contains the information (use search)\n\n**Common mistakes:**\n\n- Passing a list of URLs to one scrape call. Call scrape once per URL in MCP. If you specifically need one bulk API operation, use the Firecrawl API batch endpoint outside MCP.\n- Using markdown format by default (use JSON format to extract only what you need).\n\n**Choosing the right format:**\n\n- **JSON format (preferred):** For most use cases, use JSON format with a schema to extract only the specific data needed. This keeps responses focused and prevents context window overflow.\n- **Markdown format:** Only when the task genuinely requires full page content (e.g., summarizing an entire article, analyzing page structure).\n\n**Prompt Example:**\n\n> \"Get the product details from https://example.com/product.\"\n\n**Usage Example (JSON format - preferred):**\n\n```json\n{\n \"name\": \"firecrawl_scrape\",\n \"arguments\": {\n \"url\": \"https://example.com/product\",\n \"formats\": [\n {\n \"type\": \"json\",\n \"prompt\": \"Extract the product information\",\n \"schema\": {\n \"type\": \"object\",\n \"properties\": {\n \"name\": { \"type\": \"string\" },\n \"price\": { \"type\": \"number\" },\n \"description\": { \"type\": \"string\" }\n },\n \"required\": [\"name\", \"price\"]\n }\n }\n ]\n }\n}\n```\n\n**Usage Example (markdown format - when full content needed):**\n\n```json\n{\n \"name\": \"firecrawl_scrape\",\n \"arguments\": {\n \"url\": \"https://example.com/article\",\n \"formats\": [\"markdown\"],\n \"onlyMainContent\": true\n }\n}\n```\n\n**Usage Example (branding format - extract brand identity):**\n\n```json\n{\n \"name\": \"firecrawl_scrape\",\n \"arguments\": {\n \"url\": \"https://example.com\",\n \"formats\": [\"branding\"]\n }\n}\n```\n\n**Branding format:** Extracts comprehensive brand identity (colors, fonts, typography, spacing, logo, UI components) for design analysis or style replication.\n**Privacy:** Set `redactPII: true` to return content with personally identifiable information redacted.\n\n**Returns:**\n\n- JSON structured data, markdown, branding profile, or other formats as specified.\n\n### 2. Map Tool (`firecrawl_map`)\n\nMap a website to discover all indexed URLs on the site.\n\n**Best for:**\n\n- Discovering URLs on a website before deciding what to scrape\n- Finding specific sections of a website\n\n**Not recommended for:**\n\n- When you already know which specific URL you need (use scrape)\n- When you need the content of the pages (use scrape after mapping)\n\n**Common mistakes:**\n\n- Using crawl to discover URLs instead of map\n\n**Prompt Example:**\n\n> \"List all URLs on example.com.\"\n\n**Usage Example:**\n\n```json\n{\n \"name\": \"firecrawl_map\",\n \"arguments\": {\n \"url\": \"https://example.com\"\n }\n}\n```\n\n**Returns:**\n\n- Array of URLs found on the site\n\n### 3. Search Tool (`firecrawl_search`)\n\nSearch the web and optionally extract content from search results.\n\n**Best for:**\n\n- Finding specific information across multiple websites, when you don't know which website has the information.\n- When you need the most relevant content for a query\n\n**Not recommended for:**\n\n- When you already know which website to scrape (use scrape)\n- When you need comprehensive coverage of a single website (use map or crawl)\n\n**Common mistakes:**\n\n- Using crawl or map for open-ended questions (use search instead)\n\n**Usage Example:**\n\n```json\n{\n \"name\": \"firecrawl_search\",\n \"arguments\": {\n \"query\": \"remote work stipend policies at tech companies\",\n \"highlights\": true,\n \"limit\": 5,\n \"lang\": \"en\",\n \"country\": \"us\",\n \"scrapeOptions\": {\n \"formats\": [\"markdown\"],\n \"onlyMainContent\": true,\n \"redactPII\": true\n }\n }\n}\n```\n\nSet `highlights` to `true` to request query-relevant highlights or `false` to keep the original search snippets. Omit it to use the API's default behavior.\n\nFor scientific papers, see [Research Tools](#12-research-tools-firecrawl_research_): they search paper abstracts and full text, while `categories: [\"research\"]` here filters ordinary web results to research-affiliated websites.\n\n**Returns:**\n\n- Array of search results (with optional scraped content), plus an `id` field. Pass that `id` to `firecrawl_search_feedback` after you've used the results to refund 1 credit (search costs 2) and improve search quality.\n\n**Prompt Example:**\n\n> \"Compare remote work stipend policies across tech companies.\"\n\n### 3b. Search Feedback Tool (`firecrawl_search_feedback`)\n\nSends structured feedback on a previous `firecrawl_search` result. The first feedback per search id refunds 1 credit and improves Firecrawl's search quality. Idempotent per search id.\n\n**Call this after every search you actually use** (or that didn't help). Bad/partial feedback with `missingContent` is just as valuable as good feedback.\n\n**Opt out:** set `FIRECRAWL_NO_SEARCH_FEEDBACK=1` (or `FIRECRAWL_DISABLE_SEARCH_FEEDBACK=1`) in the environment when starting the MCP server. The `firecrawl_search_feedback` tool will not be registered, so agents can't call it. Team admins can also disable feedback server-side; in that case the tool is registered but always returns `feedbackErrorCode: \"TEAM_OPTED_OUT\"`.\n\n**Most important field:** `missingContent`. It's an array of specific pieces of content the agent expected to find but did not. One entry per missing topic — these aggregate across teams and tell us what to index next.\n\n**Daily refund cap (per team, per UTC day, default 100 credits).** Once a team's `creditsRefundedToday` reaches `dailyRefundCap`, further submissions still record feedback but no longer refund credits. The response sets `dailyCapReached: true`. Agents should stop calling this tool for the rest of the UTC day when they see that flag.\n\n**Usage Example:**\n\n```json\n{\n \"name\": \"firecrawl_search_feedback\",\n \"arguments\": {\n \"searchId\": \"0193f6c5-1234-7890-abcd-1234567890ab\",\n \"rating\": \"good\",\n \"valuableSources\": [\n {\n \"url\": \"https://docs.firecrawl.dev/features/search\",\n \"reason\": \"Most up-to-date description of /search.\"\n }\n ],\n \"missingContent\": [\n {\n \"topic\": \"Pricing for the search endpoint\",\n \"description\": \"No pricing tier table for /search specifically.\"\n },\n { \"topic\": \"Per-team rate limits\" }\n ],\n \"querySuggestions\": \"Boost docs.firecrawl.dev for queries that mention 'firecrawl'\"\n }\n}\n```\n\n**Returns:**\n\n- `{ success, feedbackId, creditsRefunded, alreadySubmitted? }` JSON.\n\n### 3c. Generic Feedback Tool (`firecrawl_feedback`)\n\nSends structured feedback for a completed v2 endpoint job through `/v2/feedback`.\nUse this for endpoint-level feedback on `scrape`, `parse`, `map`, or `search`\njobs. For search-result quality specifically, prefer\n`firecrawl_search_feedback` because it includes search-specific guidance.\n\nKeep feedback concise: use issue codes, tags, short notes, URLs, page numbers,\nand small metadata objects. Do not include raw scrape/parse outputs.\n\n**Opt out:** set `FIRECRAWL_NO_ENDPOINT_FEEDBACK=1` (or `FIRECRAWL_DISABLE_ENDPOINT_FEEDBACK=1`) in the environment when starting the MCP server. The `firecrawl_feedback` tool will not be registered, so agents cannot call it.\n\n**Usage Example:**\n\n```json\n{\n \"name\": \"firecrawl_feedback\",\n \"arguments\": {\n \"endpoint\": \"scrape\",\n \"jobId\": \"0193f6c5-1234-7890-abcd-1234567890ab\",\n \"rating\": \"partial\",\n \"issues\": [\"missing_markdown\"],\n \"tags\": [\"docs\"],\n \"note\": \"The pricing table was missing from the markdown output.\",\n \"url\": \"https://example.com/pricing\",\n \"pageNumbers\": [1],\n \"metadata\": {\n \"format\": \"markdown\"\n }\n }\n}\n```\n\n**Returns:**\n\n- `{ success, feedbackId, creditsRefunded, creditsRefundedToday?, dailyRefundCap?, dailyCapReached?, alreadySubmitted?, warning? }` JSON.\n\n### 4. Crawl Tool (`firecrawl_crawl`)\n\nStarts a crawl job, polls until it reaches a terminal state, and returns the final crawl status/data.\n\n**Best for:**\n\n- Extracting content from multiple related pages, when you need comprehensive coverage.\n\n**Not recommended for:**\n\n- Extracting content from a single page (use scrape)\n- When token limits are a concern (use map + scrape for tighter control)\n- When you need fast results (crawling can be slow)\n\n**Warning:** Crawl responses can be very large and may exceed token limits. Limit the crawl depth and number of pages, or use map + scrape for tighter control.\n\n**Common mistakes:**\n\n- Setting limit or maxDiscoveryDepth too high (causes token overflow)\n- Using crawl for a single page (use scrape instead)\n\n**Prompt Example:**\n\n> \"Get all blog posts from the first two levels of example.com/blog.\"\n\n**Usage Example:**\n\n```json\n{\n \"name\": \"firecrawl_crawl\",\n \"arguments\": {\n \"url\": \"https://example.com/blog/*\",\n \"maxDiscoveryDepth\": 2,\n \"limit\": 100,\n \"allowExternalLinks\": false,\n \"deduplicateSimilarURLs\": true\n }\n}\n```\n\n**Returns:**\n\n- Final crawl status and data after internal polling, including `id`, `status`, `completed`, `total`, `creditsUsed`, `expiresAt`, `next`, and `data`. Use the returned `id` with `firecrawl_check_crawl_status` if you need to re-check the job later.\n\n### 5. Check Crawl Status (`firecrawl_check_crawl_status`)\n\nCheck the status and results of an existing crawl job by ID.\n\n```json\n{\n \"name\": \"firecrawl_check_crawl_status\",\n \"arguments\": {\n \"id\": \"550e8400-e29b-41d4-a716-446655440000\"\n }\n}\n```\n\n**Returns:**\n\n- Response includes the status of the crawl job:\n\n### 6. Parse Tool (`firecrawl_parse`)\n\nParse local files or hosted upload references with Firecrawl's `/v2/parse` endpoint.\n\n**Best for:** PDFs, Word documents, spreadsheets, HTML files, and other documents that need markdown or structured JSON output. Hosted MCP supports a two-step upload-ref flow; local direct file reads require a self-hosted `FIRECRAWL_API_URL`.\n\n**Not recommended for:** Remote URLs (use scrape), multiple files in one call (call parse once per file), or browser-only actions such as screenshots and clicks.\n\n**Hosted MCP flow:** Hosted MCP cannot read the caller's filesystem directly. Call `firecrawl_parse` with `filePath` to receive a short-lived upload command and `nextToolCall`, upload the file locally, then call `firecrawl_parse` again with the returned `uploadRef`. Minting the hosted upload URL requires Firecrawl auth or keyless eligibility. In local `npx firecrawl-mcp` mode, direct file parsing currently requires `FIRECRAWL_API_URL` pointing to a self-hosted Firecrawl API; a plain cloud API-key-only local server cannot read and upload files through this tool.\n\n**Usage Example:**\n\n… (truncated — the rest is at https://raw.githubusercontent.com/mendableai/firecrawl-mcp-server/main/README.md)\n"
|
|
60
|
+
},
|
|
61
|
+
"git": {
|
|
62
|
+
"source": "https://raw.githubusercontent.com/modelcontextprotocol/servers/main/src/git/README.md",
|
|
63
|
+
"format": "markdown",
|
|
64
|
+
"bytes": 10762,
|
|
65
|
+
"truncated": false,
|
|
66
|
+
"body": "# mcp-server-git: A git MCP server\n\n## Overview\n\nA Model Context Protocol server for Git repository interaction and automation. This server provides tools to read, search, and manipulate Git repositories via Large Language Models.\n\nSource: https://github.com/modelcontextprotocol/servers/tree/main/src/git\n\nRequires MCP Python SDK 1.x (`mcp>=1.29.0,<2`). SDK 2.0 renamed APIs this server uses. The port to v2 is in progress.\n\nPlease note that mcp-server-git is currently in early development. The functionality and available tools are subject to change and expansion as we continue to develop and improve the server.\n\n### Tools\n\n1. `git_status`\n - Shows the working tree status\n - Input:\n - `repo_path` (string): Path to Git repository\n - Returns: Current status of working directory as text output\n\n2. `git_diff_unstaged`\n - Shows changes in working directory not yet staged\n - Inputs:\n - `repo_path` (string): Path to Git repository\n - `context_lines` (number, optional): Number of context lines to show (default: 3)\n - Returns: Diff output of unstaged changes\n\n3. `git_diff_staged`\n - Shows changes that are staged for commit\n - Inputs:\n - `repo_path` (string): Path to Git repository\n - `context_lines` (number, optional): Number of context lines to show (default: 3)\n - Returns: Diff output of staged changes\n\n4. `git_diff`\n - Shows differences between branches or commits\n - Inputs:\n - `repo_path` (string): Path to Git repository\n - `target` (string): Target branch or commit to compare with\n - `context_lines` (number, optional): Number of context lines to show (default: 3)\n - Returns: Diff output comparing current state with target\n\n5. `git_commit`\n - Records changes to the repository\n - Inputs:\n - `repo_path` (string): Path to Git repository\n - `message` (string): Commit message\n - Returns: Confirmation with new commit hash\n\n6. `git_add`\n - Adds file contents to the staging area\n - Inputs:\n - `repo_path` (string): Path to Git repository\n - `files` (string[]): Array of file paths to stage\n - Returns: Confirmation of staged files\n\n7. `git_reset`\n - Unstages all staged changes\n - Input:\n - `repo_path` (string): Path to Git repository\n - Returns: Confirmation of reset operation\n\n8. `git_log`\n - Shows the commit logs with optional date filtering\n - Inputs:\n - `repo_path` (string): Path to Git repository\n - `max_count` (number, optional): Maximum number of commits to show (default: 10)\n - `start_timestamp` (string, optional): Start timestamp for filtering commits. Accepts ISO 8601 format (e.g., '2024-01-15T14:30:25'), relative dates (e.g., '2 weeks ago', 'yesterday'), or absolute dates (e.g., '2024-01-15', 'Jan 15 2024')\n - `end_timestamp` (string, optional): End timestamp for filtering commits. Accepts ISO 8601 format (e.g., '2024-01-15T14:30:25'), relative dates (e.g., '2 weeks ago', 'yesterday'), or absolute dates (e.g., '2024-01-15', 'Jan 15 2024')\n - Returns: Array of commit entries with hash, author, date, and message\n\n9. `git_create_branch`\n - Creates a new branch\n - Inputs:\n - `repo_path` (string): Path to Git repository\n - `branch_name` (string): Name of the new branch\n - `base_branch` (string, optional): Base branch to create from (defaults to current branch)\n - Returns: Confirmation of branch creation\n10. `git_checkout`\n - Switches branches\n - Inputs:\n - `repo_path` (string): Path to Git repository\n - `branch_name` (string): Name of branch to checkout\n - Returns: Confirmation of branch switch\n11. `git_show`\n - Shows the contents of a commit\n - Inputs:\n - `repo_path` (string): Path to Git repository\n - `revision` (string): The revision (commit hash, branch name, tag) to show\n - Returns: Contents of the specified commit\n\n12. `git_branch`\n - List Git branches\n - Inputs:\n - `repo_path` (string): Path to the Git repository.\n - `branch_type` (string): Whether to list local branches ('local'), remote branches ('remote') or all branches('all').\n - `contains` (string, optional): The commit sha that branch should contain. Do not pass anything to this param if no commit sha is specified\n - `not_contains` (string, optional): The commit sha that branch should NOT contain. Do not pass anything to this param if no commit sha is specified\n - Returns: List of branches\n\n## Installation\n\n### Using uv (recommended)\n\nWhen using [`uv`](https://docs.astral.sh/uv/) no specific installation is needed. We will\nuse [`uvx`](https://docs.astral.sh/uv/guides/tools/) to directly run *mcp-server-git*.\n\n### Using PIP\n\nAlternatively you can install `mcp-server-git` via pip:\n\n```\npip install mcp-server-git\n```\n\nAfter installation, you can run it as a script using:\n\n```\npython -m mcp_server_git\n```\n\n## Configuration\n\n### Usage with Claude Desktop\n\nAdd this to your `claude_desktop_config.json`:\n\nUsing uvx\n\n```json\n\"mcpServers\": {\n \"git\": {\n \"command\": \"uvx\",\n \"args\": [\"mcp-server-git\", \"--repository\", \"path/to/git/repo\"]\n }\n}\n```\n\nUsing docker\n\n* Note: replace '/Users/username' with a path that you want to be accessible by this tool\n\n```json\n\"mcpServers\": {\n \"git\": {\n \"command\": \"docker\",\n \"args\": [\"run\", \"--rm\", \"-i\", \"--mount\", \"type=bind,src=/Users/username,dst=/Users/username\", \"mcp/git\"]\n }\n}\n```\n\nUsing pip installation\n\n```json\n\"mcpServers\": {\n \"git\": {\n \"command\": \"python\",\n \"args\": [\"-m\", \"mcp_server_git\", \"--repository\", \"path/to/git/repo\"]\n }\n}\n```\n\n### Usage with VS Code\n\nFor quick installation, use one of the one-click install buttons below...\n\n[](https://insiders.vscode.dev/redirect/mcp/install?name=git&config=%7B%22command%22%3A%22uvx%22%2C%22args%22%3A%5B%22mcp-server-git%22%5D%7D) [](https://insiders.vscode.dev/redirect/mcp/install?name=git&config=%7B%22command%22%3A%22uvx%22%2C%22args%22%3A%5B%22mcp-server-git%22%5D%7D&quality=insiders)\n\n[](https://insiders.vscode.dev/redirect/mcp/install?name=git&config=%7B%22command%22%3A%22docker%22%2C%22args%22%3A%5B%22run%22%2C%22--rm%22%2C%22-i%22%2C%22--mount%22%2C%22type%3Dbind%2Csrc%3D%24%7BworkspaceFolder%7D%2Cdst%3D%2Fworkspace%22%2C%22mcp%2Fgit%22%5D%7D) [](https://insiders.vscode.dev/redirect/mcp/install?name=git&config=%7B%22command%22%3A%22docker%22%2C%22args%22%3A%5B%22run%22%2C%22--rm%22%2C%22-i%22%2C%22--mount%22%2C%22type%3Dbind%2Csrc%3D%24%7BworkspaceFolder%7D%2Cdst%3D%2Fworkspace%22%2C%22mcp%2Fgit%22%5D%7D&quality=insiders)\n\nFor manual installation, you can configure the MCP server using one of these methods:\n\n**Method 1: User Configuration (Recommended)**\nAdd the configuration to your user-level MCP configuration file. Open the Command Palette (`Ctrl + Shift + P`) and run `MCP: Open User Configuration`. This will open your user `mcp.json` file where you can add the server configuration.\n\n**Method 2: Workspace Configuration**\nAlternatively, you can add the configuration to a file called `.vscode/mcp.json` in your workspace. This will allow you to share the configuration with others.\n\n> For more details about MCP configuration in VS Code, see the [official VS Code MCP documentation](https://code.visualstudio.com/docs/copilot/customization/mcp-servers).\n\n```json\n{\n \"servers\": {\n \"git\": {\n \"command\": \"uvx\",\n \"args\": [\"mcp-server-git\"]\n }\n }\n}\n```\n\nFor Docker installation:\n\n```json\n{\n \"mcp\": {\n \"servers\": {\n \"git\": {\n \"command\": \"docker\",\n \"args\": [\n \"run\",\n \"--rm\",\n \"-i\",\n \"--mount\", \"type=bind,src=${workspaceFolder},dst=/workspace\",\n \"mcp/git\"\n ]\n }\n }\n }\n}\n```\n\n### Usage with [Zed](https://github.com/zed-industries/zed)\n\nAdd to your Zed settings.json:\n\nUsing uvx\n\n```json\n\"context_servers\": [\n \"mcp-server-git\": {\n \"command\": {\n \"path\": \"uvx\",\n \"args\": [\"mcp-server-git\"]\n }\n }\n],\n```\n\nUsing pip installation\n\n```json\n\"context_servers\": {\n \"mcp-server-git\": {\n \"command\": {\n \"path\": \"python\",\n \"args\": [\"-m\", \"mcp_server_git\"]\n }\n }\n},\n```\n\n### Usage with [Zencoder](https://zencoder.ai/)\n\n1. Go to the Zencoder menu (...)\n2. From the dropdown menu, select `Agent Tools`\n3. Click on the `Add Custom MCP`\n4. Add the name (i.e. git) and server configuration from below, and make sure to hit the `Install` button\n\nUsing uvx\n\n```json\n{\n \"command\": \"uvx\",\n \"args\": [\"mcp-server-git\", \"--repository\", \"path/to/git/repo\"]\n}\n```\n\n## Debugging\n\nYou can use the MCP inspector to debug the server. For uvx installations:\n\n```\nnpx @modelcontextprotocol/inspector uvx mcp-server-git\n```\n\nOr if you've installed the package in a specific directory or are developing on it:\n\n```\ncd path/to/servers/src/git\nnpx @modelcontextprotocol/inspector uv run mcp-server-git\n```\n\nRunning `tail -n 20 -f ~/Library/Logs/Claude/mcp*.log` will show the logs from the server and may\nhelp you debug any issues.\n\n## Development\n\nIf you are doing local development, there are two ways to test your changes:\n\n1. Run the MCP inspector to test your changes. See [Debugging](#debugging) for run instructions.\n\n2. Test using the Claude desktop app. Add the following to your `claude_desktop_config.json`:\n\n### Docker\n\n```json\n{\n \"mcpServers\": {\n \"git\": {\n \"command\": \"docker\",\n \"args\": [\n \"run\",\n \"--rm\",\n \"-i\",\n \"--mount\", \"type=bind,src=/Users/username/Desktop,dst=/projects/Desktop\",\n \"--mount\", \"type=bind,src=/path/to/other/allowed/dir,dst=/projects/other/allowed/dir,ro\",\n \"--mount\", \"type=bind,src=/path/to/file.txt,dst=/projects/path/to/file.txt\",\n \"mcp/git\"\n ]\n }\n }\n}\n```\n\n### UVX\n```json\n{\n\"mcpServers\": {\n \"git\": {\n \"command\": \"uv\",\n \"args\": [\n \"--directory\",\n \"/<path to mcp-servers>/mcp-servers/src/git\",\n \"run\",\n \"mcp-server-git\"\n ]\n }\n }\n}\n```\n\n## Build\n\nDocker build:\n\n```bash\ncd src/git\ndocker build -t mcp/git .\n```\n\n## License\n\nThis MCP server is licensed under the MIT License. This means you are free to use, modify, and distribute the software, subject to the terms and conditions of the MIT License. For more details, please see the LICENSE file in the project repository."
|
|
67
|
+
},
|
|
68
|
+
"github": {
|
|
69
|
+
"source": "https://raw.githubusercontent.com/github/github-mcp-server/main/README.md",
|
|
70
|
+
"format": "markdown",
|
|
71
|
+
"bytes": 100167,
|
|
72
|
+
"truncated": true,
|
|
73
|
+
"body": "[](https://goreportcard.com/report/github.com/github/github-mcp-server)\n\n# GitHub MCP Server\n\nThe GitHub MCP Server connects AI tools directly to GitHub's platform. This gives AI agents, assistants, and chatbots the ability to read repositories and code files, manage issues and PRs, analyze code, and automate workflows. All through natural language interactions.\n\n### Use Cases\n\n- Repository Management: Browse and query code, search files, analyze commits, and understand project structure across any repository you have access to.\n- Issue & PR Automation: Create, update, and manage issues and pull requests. Let AI help triage bugs, review code changes, and maintain project boards.\n- CI/CD & Workflow Intelligence: Monitor GitHub Actions workflow runs, analyze build failures, manage releases, and get insights into your development pipeline.\n- Code Analysis: Examine security findings, review Dependabot alerts, understand code patterns, and get comprehensive insights into your codebase.\n- Team Collaboration: Access discussions, manage notifications, analyze team activity, and streamline processes for your team.\n\nBuilt for developers who want to connect their AI tools to GitHub context and capabilities, from simple natural language queries to complex multi-step agent workflows.\n\n---\n\n## Remote GitHub MCP Server\n\n[](https://insiders.vscode.dev/redirect/mcp/install?name=github&config=%7B%22type%22%3A%20%22http%22%2C%22url%22%3A%20%22https%3A%2F%2Fapi.githubcopilot.com%2Fmcp%2F%22%7D) [](https://insiders.vscode.dev/redirect/mcp/install?name=github&config=%7B%22type%22%3A%20%22http%22%2C%22url%22%3A%20%22https%3A%2F%2Fapi.githubcopilot.com%2Fmcp%2F%22%7D&quality=insiders) [](https://aka.ms/vs/mcp-install?%7B%22name%22%3A%22github%22%2C%22gallery%22%3Atrue%2C%22url%22%3A%22https%3A%2F%2Fapi.githubcopilot.com%2Fmcp%2F%22%7D)\n\nThe remote GitHub MCP Server is hosted by GitHub and provides the easiest method for getting up and running. If your MCP host does not support remote MCP servers, don't worry! You can use the [local version of the GitHub MCP Server](https://github.com/github/github-mcp-server?tab=readme-ov-file#local-github-mcp-server) instead.\n\n### Prerequisites\n\n1. A compatible MCP host with remote server support (VS Code 1.101+, Claude Desktop, Cursor, Windsurf, etc.)\n2. Any applicable [policies enabled](https://github.com/github/github-mcp-server/blob/main/docs/policies-and-governance.md)\n\n### Install in VS Code\n\nFor quick installation, use one of the one-click install buttons above. Once you complete that flow, toggle Agent mode (located by the Copilot Chat text input) and the server will start. Make sure you're using [VS Code 1.101](https://code.visualstudio.com/updates/v1_101) or [later](https://code.visualstudio.com/updates) for remote MCP and OAuth support.\n\nAlternatively, to manually configure VS Code, choose the appropriate JSON block from the examples below and add it to your host configuration:\n\nUsing OAuthUsing a GitHub PAT\nVS Code (version 1.101 or greater)\n\n```json\n{\n \"servers\": {\n \"github\": {\n \"type\": \"http\",\n \"url\": \"https://api.githubcopilot.com/mcp/\"\n }\n }\n}\n```\n\n```json\n{\n \"servers\": {\n \"github\": {\n \"type\": \"http\",\n \"url\": \"https://api.githubcopilot.com/mcp/\",\n \"headers\": {\n \"Authorization\": \"Bearer ${input:github_mcp_pat}\"\n }\n }\n },\n \"inputs\": [\n {\n \"type\": \"promptString\",\n \"id\": \"github_mcp_pat\",\n \"description\": \"GitHub Personal Access Token\",\n \"password\": true\n }\n ]\n}\n```\n\n### Install in other MCP hosts\n\n- **[Copilot CLI](https://raw.githubusercontent.com/docs/installation-guides/install-copilot-cli.md)** - Installation guide for GitHub Copilot CLI\n- **[GitHub Copilot in other IDEs](https://raw.githubusercontent.com/docs/installation-guides/install-other-copilot-ides.md)** - Installation for JetBrains, Visual Studio, Eclipse, and Xcode with GitHub Copilot\n- **[Claude Applications](https://raw.githubusercontent.com/docs/installation-guides/install-claude.md)** - Installation guide for Claude Desktop and Claude Code CLI\n- **[Codex](https://raw.githubusercontent.com/docs/installation-guides/install-codex.md)** - Installation guide for OpenAI Codex\n- **[Cursor](https://raw.githubusercontent.com/docs/installation-guides/install-cursor.md)** - Installation guide for Cursor IDE\n- **[OpenCode](https://raw.githubusercontent.com/docs/installation-guides/install-opencode.md)** - Installation guide for the OpenCode terminal agent\n- **[Windsurf](https://raw.githubusercontent.com/docs/installation-guides/install-windsurf.md)** - Installation guide for Windsurf IDE\n- **[Zed](https://raw.githubusercontent.com/docs/installation-guides/install-zed.md)** - Installation guide for Zed editor\n- **[Rovo Dev CLI](https://raw.githubusercontent.com/docs/installation-guides/install-rovo-dev-cli.md)** - Installation guide for Rovo Dev CLI\n\n> **Note:** Each MCP host application needs to configure a GitHub App or OAuth App to support remote access via OAuth. Any host application that supports remote MCP servers should support the remote GitHub server with PAT authentication. Configuration details and support levels vary by host. Make sure to refer to the host application's documentation for more info.\n\n### Configuration\n\n#### Toolset configuration\n\nSee [Remote Server Documentation](https://raw.githubusercontent.com/github/github-mcp-server/main/docs/remote-server.md) for full details on remote server configuration, toolsets, headers, and advanced usage. This file provides comprehensive instructions and examples for connecting, customizing, and installing the remote GitHub MCP Server in VS Code and other MCP hosts.\n\nWhen no toolsets are specified, [default toolsets](#default-toolset) are used.\n\n#### Insiders Mode\n\n> **Try new features early!** The remote server offers an insiders version with early access to new features and experimental tools.\n\nUsing URL PathUsing Header\n\n```json\n{\n \"servers\": {\n \"github\": {\n \"type\": \"http\",\n \"url\": \"https://api.githubcopilot.com/mcp/insiders\"\n }\n }\n}\n```\n\n```json\n{\n \"servers\": {\n \"github\": {\n \"type\": \"http\",\n \"url\": \"https://api.githubcopilot.com/mcp/\",\n \"headers\": {\n \"X-MCP-Insiders\": \"true\"\n }\n }\n }\n}\n```\n\nSee [Remote Server Documentation](https://raw.githubusercontent.com/github/github-mcp-server/main/docs/remote-server.md#insiders-mode) for more details and examples, and [Insiders Features](https://raw.githubusercontent.com/github/github-mcp-server/main/docs/insiders-features.md) for a full list of what's available.\n\n#### GitHub Enterprise\n\n##### GitHub Enterprise Cloud with data residency (ghe.com)\n\nGitHub Enterprise Cloud can also make use of the remote server.\n\nExample for `https://octocorp.ghe.com` with GitHub PAT token:\n\n```\n{\n ...\n \"github-octocorp\": {\n \"type\": \"http\",\n \"url\": \"https://copilot-api.octocorp.ghe.com/mcp\",\n \"headers\": {\n \"Authorization\": \"Bearer ${input:github_mcp_pat}\"\n }\n },\n ...\n}\n```\n\n> **Note:** When using OAuth with GitHub Enterprise with VS Code and GitHub Copilot, you also need to configure your VS Code settings to point to your GitHub Enterprise instance - see [Authenticate from VS Code](https://docs.github.com/en/enterprise-cloud@latest/copilot/how-tos/configure-personal-settings/authenticate-to-ghecom)\n\n##### GitHub Enterprise Server\n\nGitHub Enterprise Server does not support remote server hosting. Please refer to [GitHub Enterprise Server and Enterprise Cloud with data residency (ghe.com)](#github-enterprise-server-and-enterprise-cloud-with-data-residency-ghecom) from the local server configuration.\n\n---\n\n## Local GitHub MCP Server\n\n[](https://insiders.vscode.dev/redirect/mcp/install?name=github&config=%7B%22command%22%3A%22docker%22%2C%22args%22%3A%5B%22run%22%2C%22-i%22%2C%22--rm%22%2C%22-p%22%2C%22127.0.0.1%3A8085%3A8085%22%2C%22-e%22%2C%22GITHUB_OAUTH_CALLBACK_PORT%22%2C%22ghcr.io%2Fgithub%2Fgithub-mcp-server%22%5D%2C%22env%22%3A%7B%22GITHUB_OAUTH_CALLBACK_PORT%22%3A%228085%22%7D%7D) [](https://insiders.vscode.dev/redirect/mcp/install?name=github&config=%7B%22command%22%3A%22docker%22%2C%22args%22%3A%5B%22run%22%2C%22-i%22%2C%22--rm%22%2C%22-p%22%2C%22127.0.0.1%3A8085%3A8085%22%2C%22-e%22%2C%22GITHUB_OAUTH_CALLBACK_PORT%22%2C%22ghcr.io%2Fgithub%2Fgithub-mcp-server%22%5D%2C%22env%22%3A%7B%22GITHUB_OAUTH_CALLBACK_PORT%22%3A%228085%22%7D%7D&quality=insiders) [](https://aka.ms/vs/mcp-install?%7B%22name%22%3A%22github%22%2C%22command%22%3A%22docker%22%2C%22args%22%3A%5B%22run%22%2C%22-i%22%2C%22--rm%22%2C%22-p%22%2C%22127.0.0.1%3A8085%3A8085%22%2C%22-e%22%2C%22GITHUB_OAUTH_CALLBACK_PORT%3D8085%22%2C%22ghcr.io%2Fgithub%2Fgithub-mcp-server%22%5D%7D)\n\n### Prerequisites\n\n1. To run the server in a container, you will need to have [Docker](https://www.docker.com/) installed.\n2. Once Docker is installed, you will also need to ensure Docker is running. The Docker image is available at `ghcr.io/github/github-mcp-server`. The image is public; if you get errors on pull, you may have an expired token and need to `docker logout ghcr.io`.\n3. **Authentication.** On github.com you don't need to create anything up front — the one-click buttons above log you in with OAuth on first use (a browser-based flow; the token is kept in memory only). The Docker buttons publish a fixed callback port (`127.0.0.1:8085`) so the container's login callback is reachable. See **[Local Server OAuth Login](https://raw.githubusercontent.com/github/github-mcp-server/main/docs/oauth-login.md)** for how it works, headless/device-code fallback, and bringing your own OAuth or GitHub App (required for GitHub Enterprise Server and `ghe.com`).\n\n Prefer a token? You can still authenticate with a [GitHub Personal Access Token](https://github.com/settings/personal-access-tokens/new) by setting `GITHUB_PERSONAL_ACCESS_TOKEN` instead (it takes precedence over OAuth). The MCP server can use many of the GitHub APIs, so enable the permissions that you feel comfortable granting your AI tools (to learn more about access tokens, please check out the [documentation](https://docs.github.com/en/authentication/keeping-your-account-and-data-secure/managing-your-personal-access-tokens)).\n\nHandling PATs Securely\n\n### Environment Variables (Recommended)\n\nTo keep your GitHub PAT secure and reusable across different MCP hosts:\n\n1. **Store your PAT in environment variables**\n\n ```bash\n export GITHUB_PAT=your_token_here\n ```\n\n Or create a `.env` file:\n\n ```env\n GITHUB_PAT=your_token_here\n ```\n\n2. **Protect your `.env` file**\n\n ```bash\n # Add to .gitignore to prevent accidental commits\n echo \".env\" >> .gitignore\n ```\n\n3. **Reference the token in configurations**\n\n ```bash\n # CLI usage\n claude mcp add github -e GITHUB_PERSONAL_ACCESS_TOKEN=$GITHUB_PAT -- docker run -i --rm -e GITHUB_PERSONAL_ACCESS_TOKEN ghcr.io/github/github-mcp-server\n\n # In config files (where supported)\n \"env\": {\n \"GITHUB_PERSONAL_ACCESS_TOKEN\": \"$GITHUB_PAT\"\n }\n ```\n\n> **Note**: Environment variable support varies by host app and IDE. Some applications (like Windsurf) require hardcoded tokens in config files.\n\n### Token Security Best Practices\n\n- **Minimum scopes**: Only grant necessary permissions\n - `repo` - Repository operations\n - `read:packages` - Docker image access\n - `read:org` - Organization team access\n- **Separate tokens**: Use different PATs for different projects/environments\n- **Regular rotation**: Update tokens periodically\n- **Never commit**: Keep tokens out of version control\n- **File permissions**: Restrict access to config files containing tokens\n\n ```bash\n chmod 600 ~/.your-app/config.json\n ```\n\n### GitHub Enterprise Server and Enterprise Cloud with data residency (ghe.com)\n\nThe flag `--gh-host` and the environment variable `GITHUB_HOST` can be used to set\nthe hostname for GitHub Enterprise Server or GitHub Enterprise Cloud with data residency.\n\n- For GitHub Enterprise Server, prefix the hostname with the `https://` URI scheme. HTTPS is required and enforced: non-HTTPS hosts are refused so that credentials are never sent over cleartext (the only exception is a loopback host such as `http://localhost` for local development).\n- For GitHub Enterprise Cloud with data residency, use `https://YOURSUBDOMAIN.ghe.com` as the hostname.\n\n``` json\n\"github\": {\n \"command\": \"docker\",\n \"args\": [\n \"run\",\n \"-i\",\n \"--rm\",\n \"-e\",\n \"GITHUB_PERSONAL_ACCESS_TOKEN\",\n \"-e\",\n \"GITHUB_HOST\",\n \"ghcr.io/github/github-mcp-server\"\n ],\n \"env\": {\n \"GITHUB_PERSONAL_ACCESS_TOKEN\": \"${input:github_token}\",\n \"GITHUB_HOST\": \"https://<your GHES or ghe.com domain name>\"\n }\n}\n```\n\n## Installation\n\n### Install in GitHub Copilot on VS Code\n\nFor quick installation, use one of the one-click install buttons above. Once you complete that flow, toggle Agent mode (located by the Copilot Chat text input) and the server will start.\n\nMore about using MCP server tools in VS Code's [agent mode documentation](https://code.visualstudio.com/docs/copilot/chat/mcp-servers).\n\nInstall in GitHub Copilot on other IDEs (JetBrains, Visual Studio, Eclipse, etc.)\n\nAdd one of the following JSON blocks to your IDE's MCP settings.\n\n**Log in with OAuth (no token to create or store).** On github.com the official image already includes the app credentials, so you provide none yourself: it runs a browser-based login on first use and keeps the resulting token **in memory only**. In Docker this needs a fixed callback port published to loopback so the container's login callback is reachable:\n\n```json\n{\n \"mcp\": {\n \"servers\": {\n \"github\": {\n \"command\": \"docker\",\n \"args\": [\n \"run\",\n \"-i\",\n \"--rm\",\n \"-p\",\n \"127.0.0.1:8085:8085\",\n \"-e\",\n \"GITHUB_OAUTH_CALLBACK_PORT\",\n \"ghcr.io/github/github-mcp-server\"\n ],\n \"env\": {\n \"GITHUB_OAUTH_CALLBACK_PORT\": \"8085\"\n }\n }\n }\n }\n}\n```\n\nSee **[Local Server OAuth Login](https://raw.githubusercontent.com/github/github-mcp-server/main/docs/oauth-login.md)** for the native-binary flow (no fixed port needed), the headless/device-code fallback, GitHub Enterprise Server / `ghe.com`, and bringing your own OAuth or GitHub App.\n\nFor non-interactive stdio deployments, see **[GitHub App Authentication](https://raw.githubusercontent.com/github/github-mcp-server/main/docs/github-app-auth.md)**.\n\n**Or authenticate with a Personal Access Token.** Set `GITHUB_PERSONAL_ACCESS_TOKEN` instead (it takes precedence over OAuth):\n\n```json\n{\n \"mcp\": {\n \"inputs\": [\n {\n \"type\": \"promptString\",\n \"id\": \"github_token\",\n \"description\": \"GitHub Personal Access Token\",\n \"password\": true\n }\n ],\n \"servers\": {\n \"github\": {\n \"command\": \"docker\",\n \"args\": [\n \"run\",\n \"-i\",\n \"--rm\",\n \"-e\",\n \"GITHUB_PERSONAL_ACCESS_TOKEN\",\n \"ghcr.io/github/github-mcp-server\"\n ],\n \"env\": {\n \"GITHUB_PERSONAL_ACCESS_TOKEN\": \"${input:github_token}\"\n }\n }\n }\n }\n}\n```\n\nOptionally, you can add a similar example (i.e. without the mcp key) to a file called `.vscode/mcp.json` in your workspace. This will allow you to share the configuration with other host applications that accept the same format.\n\nExample JSON block without the MCP key included\n\n```json\n{\n \"inputs\": [\n {\n \"type\": \"promptString\",\n \"id\": \"github_token\",\n \"description\": \"GitHub Personal Access Token\",\n \"password\": true\n }\n ],\n \"servers\": {\n \"github\": {\n \"command\": \"docker\",\n \"args\": [\n \"run\",\n \"-i\",\n \"--rm\",\n \"-e\",\n \"GITHUB_PERSONAL_ACCESS_TOKEN\",\n \"ghcr.io/github/github-mcp-server\"\n ],\n \"env\": {\n \"GITHUB_PERSONAL_ACCESS_TOKEN\": \"${input:github_token}\"\n }\n }\n }\n}\n```\n\n### Install in Other MCP Hosts\n\nFor other MCP host applications, please refer to our installation guides:\n\n- **[Copilot CLI](https://raw.githubusercontent.com/github/github-mcp-server/main/docs/installation-guides/install-copilot-cli.md)** - Installation guide for GitHub Copilot CLI\n- **[GitHub Copilot in other IDEs](https://raw.githubusercontent.com/docs/installation-guides/install-other-copilot-ides.md)** - Installation for JetBrains, Visual Studio, Eclipse, and Xcode with GitHub Copilot\n- **[Claude Code & Claude Desktop](https://raw.githubusercontent.com/github/github-mcp-server/main/docs/installation-guides/install-claude.md)** - Installation guide for Claude Code and Claude Desktop\n- **[Cursor](https://raw.githubusercontent.com/github/github-mcp-server/main/docs/installation-guides/install-cursor.md)** - Installation guide for Cursor IDE\n- **[Google Gemini CLI](https://raw.githubusercontent.com/github/github-mcp-server/main/docs/installation-guides/install-gemini-cli.md)** - Installation guide for Google Gemini CLI\n- **[OpenCode](https://raw.githubusercontent.com/github/github-mcp-server/main/docs/installation-guides/install-opencode.md)** - Installation guide for the OpenCode terminal agent\n- **[Windsurf](https://raw.githubusercontent.com/github/github-mcp-server/main/docs/installation-guides/install-windsurf.md)** - Installation guide for Windsurf IDE\n- **[Zed](https://raw.githubusercontent.com/github/github-mcp-server/main/docs/installation-guides/install-zed.md)** - Installation guide for Zed editor\n\nFor a complete overview of all installation options, see our **[Installation Guides Index](https://raw.githubusercontent.com/github/github-mcp-server/main/docs/installation-guides)**.\n\n> **Note:** Any host application that supports local MCP servers should be able to access the local GitHub MCP server. However, the specific configuration process, syntax and stability of the integration will vary by host application. While many may follow a similar format to the examples above, this is not guaranteed. Please refer to your host application's documentation for the correct MCP configuration syntax and setup process.\n\n### Build from source\n\nIf you don't have Docker, you can use `go build` to build the binary in the\n`cmd/github-mcp-server` directory, and use the `github-mcp-server stdio` command with the `GITHUB_PERSONAL_ACCESS_TOKEN` environment variable set to your token. To specify the output location of the build, use the `-o` flag. You should configure your server to use the built executable as its `command`. For example:\n\n```JSON\n{\n \"mcp\": {\n \"servers\": {\n \"github\": {\n \"command\": \"/path/to/github-mcp-server\",\n \"args\": [\"stdio\"],\n \"env\": {\n \"GITHUB_PERSONAL_ACCESS_TOKEN\": \"<YOUR_TOKEN>\"\n }\n }\n }\n }\n}\n```\n\n## Tool Configuration\n\nThe GitHub MCP Server supports enabling or disabling specific groups of functionalities via the `--toolsets` flag. This allows you to control which GitHub API capabilities are available to your AI tools. Enabling only the toolsets that you need can help the LLM with tool choice and reduce the context size.\n\n_Toolsets are not limited to Tools. Relevant MCP Resources and Prompts are also included where applicable._\n\nWhen no toolsets are specified, [default toolsets](#default-toolset) are used.\n\n> **Looking for examples?** See the [Server Configuration Guide](https://raw.githubusercontent.com/github/github-mcp-server/main/docs/server-configuration.md) for common recipes like minimal setups, read-only mode, and combining tools with toolsets.\n\n#### Specifying Toolsets\n\nTo specify toolsets you want available to the LLM, you can pass an allow-list in two ways:\n\n1. **Using Command Line Argument**:\n\n ```bash\n github-mcp-server --toolsets repos,issues,pull_requests,actions,code_security\n ```\n\n2. **Using Environment Variable**:\n\n ```bash\n GITHUB_TOOLSETS=\"repos,issues,pull_requests,actions,code_security\" ./github-mcp-server\n ```\n\nThe environment variable `GITHUB_TOOLSETS` takes precedence over the command line argument if both are provided.\n\n#### Specifying Individual Tools\n\nYou can also configure specific tools using the `--tools` flag. Tools can be used independently or combined with toolsets for fine-grained control.\n\n1. **Using Command Line Argument**:\n\n ```bash\n github-mcp-server --tools get_file_contents,issue_read,create_pull_request\n ```\n\n2. **Using Environment Variable**:\n\n ```bash\n GITHUB_TOOLS=\"get_file_contents,issue_read,create_pull_request\" ./github-mcp-server\n ```\n\n3. **Combining with Toolsets** (additive):\n\n ```bash\n github-mcp-server --toolsets repos,issues --tools get_gist\n ```\n\n This registers all tools from `repos` and `issues` toolsets, plus `get_gist`.\n\n**Important Notes:**\n\n- Tools and toolsets can be used together\n- Read-only mode takes priority: write tools are skipped if `--read-only` is set, even if explicitly requested via `--tools`\n- Tool names must match exactly (e.g., `get_file_contents`, not `getFileContents`). Invalid tool names will cause the server to fail at startup with an error message\n- When tools are renamed, old names are preserved as aliases for backward compatibility. See [Tool Renaming](https://raw.githubusercontent.com/github/github-mcp-server/main/docs/tool-renaming.md) for details.\n\n### Using Toolsets With Docker\n\nWhen using Docker, you can pass the toolsets as environment variables:\n\n```bash\ndocker run -i --rm \\\n -e GITHUB_PERSONAL_ACCESS_TOKEN=<your-token> \\\n -e GITHUB_TOOLSETS=\"repos,issues,pull_requests,actions,code_security\" \\\n ghcr.io/github/github-mcp-server\n```\n\n### Using Tools With Docker\n\nWhen using Docker, you can pass specific tools as environment variables. You can also combine tools with toolsets:\n\n```bash\n# Tools only\ndocker run -i --rm \\\n -e GITHUB_PERSONAL_ACCESS_TOKEN=<your-token> \\\n -e GITHUB_TOOLS=\"get_file_contents,issue_read,create_pull_request\" \\\n ghcr.io/github/github-mcp-server\n\n# Tools combined with toolsets (additive)\ndocker run -i --rm \\\n -e GITHUB_PERSONAL_ACCESS_TOKEN=<your-token> \\\n -e GITHUB_TOOLSETS=\"repos,issues\" \\\n -e GITHUB_TOOLS=\"get_gist\" \\\n ghcr.io/github/github-mcp-server\n```\n\n### Special toolsets\n\n#### \"all\" toolset\n\nThe special toolset `all` can be provided to enable all available toolsets regardless of any other configuration:\n\n```bash\n./github-mcp-server --toolsets all\n```\n\nOr using the environment variable:\n\n```bash\nGITHUB_TOOLSETS=\"all\" ./github-mcp-server\n```\n\n#### \"default\" toolset\n\nThe default toolset `default` is the configuration that gets passed to the server if no toolsets are specified.\n\nThe default configuration is:\n\n- context\n- repos\n- issues\n- pull_requests\n- users\n\nTo keep the default configuration and add additional toolsets:\n\n```bash\nGITHUB_TOOLSETS=\"default,stargazers\" ./github-mcp-server\n```\n\n### Insiders Mode\n\nThe local GitHub MCP Server offers an insiders version with early access to new features and experimental tools.\n\n1. **Using Command Line Argument**:\n\n ```bash\n ./github-mcp-server --insiders\n ```\n\n2. **Using Environment Variable**:\n\n ```bash\n GITHUB_INSIDERS=true ./github-mcp-server\n ```\n\nWhen using Docker:\n\n```bash\ndocker run -i --rm \\\n -e GITHUB_PERSONAL_ACCESS_TOKEN=<your-token> \\\n -e GITHUB_INSIDERS=true \\\n ghcr.io/github/github-mcp-server\n```\n\n### Available Toolsets\n\nThe following sets of tools are available:\n\n| | Toolset | Description |\n\n… (truncated — the rest is at https://raw.githubusercontent.com/github/github-mcp-server/main/README.md)\n"
|
|
74
|
+
},
|
|
75
|
+
"memory": {
|
|
76
|
+
"source": "https://raw.githubusercontent.com/modelcontextprotocol/servers/main/src/memory/README.md",
|
|
77
|
+
"format": "markdown",
|
|
78
|
+
"bytes": 10849,
|
|
79
|
+
"truncated": false,
|
|
80
|
+
"body": "# Knowledge Graph Memory Server\n\nA basic implementation of persistent memory using a local knowledge graph. This lets Claude remember information about the user across chats.\n\nPublished on npm as [`@modelcontextprotocol/server-memory`](https://www.npmjs.com/package/@modelcontextprotocol/server-memory).\n\n## Core Concepts\n\n### Entities\nEntities are the primary nodes in the knowledge graph. Each entity has:\n- A unique name (identifier)\n- An entity type (e.g., \"person\", \"organization\", \"event\")\n- A list of observations\n\nExample:\n```json\n{\n \"name\": \"John_Smith\",\n \"entityType\": \"person\",\n \"observations\": [\"Speaks fluent Spanish\"]\n}\n```\n\n### Relations\nRelations define directed connections between entities. They are always stored in active voice and describe how entities interact or relate to each other.\n\nExample:\n```json\n{\n \"from\": \"John_Smith\",\n \"to\": \"Anthropic\",\n \"relationType\": \"works_at\"\n}\n```\n### Observations\nObservations are discrete pieces of information about an entity. They are:\n\n- Stored as strings\n- Attached to specific entities\n- Can be added or removed independently\n- Should be atomic (one fact per observation)\n\nExample:\n```json\n{\n \"entityName\": \"John_Smith\",\n \"observations\": [\n \"Speaks fluent Spanish\",\n \"Graduated in 2019\",\n \"Prefers morning meetings\"\n ]\n}\n```\n\n## API\n\n### Tools\n- **create_entities**\n - Create multiple new entities in the knowledge graph\n - Input: `entities` (array of objects)\n - Each object contains:\n - `name` (string): Entity identifier\n - `entityType` (string): Type classification\n - `observations` (string[]): Associated observations\n - Ignores entities with existing names\n\n- **create_relations**\n - Create multiple new relations between entities\n - Input: `relations` (array of objects)\n - Each object contains:\n - `from` (string): Source entity name\n - `to` (string): Target entity name\n - `relationType` (string): Relationship type in active voice\n - Skips duplicate relations\n - Fails if either the source or target entity doesn't exist\n\n- **add_observations**\n - Add new observations to existing entities\n - Input: `observations` (array of objects)\n - Each object contains:\n - `entityName` (string): Target entity\n - `contents` (string[]): New observations to add\n - Returns added observations per entity\n - Fails if entity doesn't exist\n\n- **delete_entities**\n - Remove entities and their relations\n - Input: `entityNames` (string[])\n - Cascading deletion of associated relations\n - No error if an entity doesn't exist; the response reports which names were not found\n\n- **delete_observations**\n - Remove specific observations from entities\n - Input: `deletions` (array of objects)\n - Each object contains:\n - `entityName` (string): Target entity\n - `observations` (string[]): Observations to remove\n - No error if an observation doesn't exist; the response reports how many were deleted\n\n- **delete_relations**\n - Remove specific relations from the graph\n - Input: `relations` (array of objects)\n - Each object contains:\n - `from` (string): Source entity name\n - `to` (string): Target entity name\n - `relationType` (string): Relationship type\n - No error if a relation doesn't exist; the response reports how many were deleted\n\n- **read_graph**\n - Read the entire knowledge graph\n - No input required\n - Returns complete graph structure with all entities and relations\n\n- **search_nodes**\n - Search for nodes based on query\n - Input: `query` (string)\n - Searches across:\n - Entity names\n - Entity types\n - Observation content\n - Returns matching entities and their relations\n\n- **open_nodes**\n - Retrieve specific nodes by name\n - Input: `names` (string[])\n - Returns:\n - Requested entities\n - Relations between requested entities\n - Silently skips non-existent nodes\n\n### Resources\n\n- **knowledge-graph** (`memory://knowledge-graph`)\n - The full knowledge graph as a readable MCP Resource\n - MIME type: `application/json`\n - Returns the same shape as `read_graph` (entities and relations)\n - Mutation tools (`create_entities`, `create_relations`, `add_observations`, `delete_entities`, `delete_observations`, `delete_relations`) emit `notifications/resources/updated` for this URI, so subscribed clients see live changes\n\n# Usage with Claude Desktop\n\n### Setup\n\nAdd this to your claude_desktop_config.json:\n\n#### Docker\n\n```json\n{\n \"mcpServers\": {\n \"memory\": {\n \"command\": \"docker\",\n \"args\": [\"run\", \"-i\", \"-v\", \"claude-memory:/app/dist\", \"--rm\", \"mcp/memory\"]\n }\n }\n}\n```\n\n#### NPX\n```json\n{\n \"mcpServers\": {\n \"memory\": {\n \"command\": \"npx\",\n \"args\": [\n \"-y\",\n \"@modelcontextprotocol/server-memory\"\n ]\n }\n }\n}\n```\n\nOn Windows, use `cmd /c` to launch `npx`:\n\n```json\n{\n \"mcpServers\": {\n \"memory\": {\n \"command\": \"cmd\",\n \"args\": [\n \"/c\",\n \"npx\",\n \"-y\",\n \"@modelcontextprotocol/server-memory\"\n ]\n }\n }\n}\n```\n\n#### NPX with custom setting\n\nThe server can be configured using the following environment variables:\n\n```json\n{\n \"mcpServers\": {\n \"memory\": {\n \"command\": \"npx\",\n \"args\": [\n \"-y\",\n \"@modelcontextprotocol/server-memory\"\n ],\n \"env\": {\n \"MEMORY_FILE_PATH\": \"/path/to/custom/memory.jsonl\"\n }\n }\n }\n}\n```\n\nOn Windows, use:\n\n```json\n{\n \"mcpServers\": {\n \"memory\": {\n \"command\": \"cmd\",\n \"args\": [\n \"/c\",\n \"npx\",\n \"-y\",\n \"@modelcontextprotocol/server-memory\"\n ],\n \"env\": {\n \"MEMORY_FILE_PATH\": \"/path/to/custom/memory.jsonl\"\n }\n }\n }\n}\n```\n\n- `MEMORY_FILE_PATH`: Path to the memory storage JSONL file (default: `memory.jsonl` in the server directory)\n\n# VS Code Installation Instructions\n\nFor quick installation, use one of the one-click installation buttons below:\n\n[](https://insiders.vscode.dev/redirect/mcp/install?name=memory&config=%7B%22command%22%3A%22npx%22%2C%22args%22%3A%5B%22-y%22%2C%22%40modelcontextprotocol%2Fserver-memory%22%5D%7D) [](https://insiders.vscode.dev/redirect/mcp/install?name=memory&config=%7B%22command%22%3A%22npx%22%2C%22args%22%3A%5B%22-y%22%2C%22%40modelcontextprotocol%2Fserver-memory%22%5D%7D&quality=insiders)\n\n[](https://insiders.vscode.dev/redirect/mcp/install?name=memory&config=%7B%22command%22%3A%22docker%22%2C%22args%22%3A%5B%22run%22%2C%22-i%22%2C%22-v%22%2C%22claude-memory%3A%2Fapp%2Fdist%22%2C%22--rm%22%2C%22mcp%2Fmemory%22%5D%7D) [](https://insiders.vscode.dev/redirect/mcp/install?name=memory&config=%7B%22command%22%3A%22docker%22%2C%22args%22%3A%5B%22run%22%2C%22-i%22%2C%22-v%22%2C%22claude-memory%3A%2Fapp%2Fdist%22%2C%22--rm%22%2C%22mcp%2Fmemory%22%5D%7D&quality=insiders)\n\nFor manual installation, you can configure the MCP server using one of these methods:\n\n**Method 1: User Configuration (Recommended)**\nAdd the configuration to your user-level MCP configuration file. Open the Command Palette (`Ctrl + Shift + P`) and run `MCP: Open User Configuration`. This will open your user `mcp.json` file where you can add the server configuration.\n\n**Method 2: Workspace Configuration**\nAlternatively, you can add the configuration to a file called `.vscode/mcp.json` in your workspace. This will allow you to share the configuration with others.\n\n> For more details about MCP configuration in VS Code, see the [official VS Code MCP documentation](https://code.visualstudio.com/docs/copilot/customization/mcp-servers).\n\n#### NPX\n\n```json\n{\n \"servers\": {\n \"memory\": {\n \"command\": \"npx\",\n \"args\": [\n \"-y\",\n \"@modelcontextprotocol/server-memory\"\n ]\n }\n }\n}\n```\n\nOn Windows, use:\n\n```json\n{\n \"servers\": {\n \"memory\": {\n \"command\": \"cmd\",\n \"args\": [\n \"/c\",\n \"npx\",\n \"-y\",\n \"@modelcontextprotocol/server-memory\"\n ]\n }\n }\n}\n```\n\n#### Docker\n\n```json\n{\n \"servers\": {\n \"memory\": {\n \"command\": \"docker\",\n \"args\": [\n \"run\",\n \"-i\",\n \"-v\",\n \"claude-memory:/app/dist\",\n \"--rm\",\n \"mcp/memory\"\n ]\n }\n }\n}\n```\n\n### System Prompt\n\nThe prompt for utilizing memory depends on the use case. Changing the prompt will help the model determine the frequency and types of memories created.\n\nHere is an example prompt for chat personalization. You could use this prompt in the \"Custom Instructions\" field of a [Claude.ai Project](https://www.anthropic.com/news/projects). \n\n```\nFollow these steps for each interaction:\n\n1. User Identification:\n - You should assume that you are interacting with default_user\n - If you have not identified default_user, proactively try to do so.\n\n2. Memory Retrieval:\n - Always begin your chat by saying only \"Remembering...\" and retrieve all relevant information from your knowledge graph\n - Always refer to your knowledge graph as your \"memory\"\n\n3. Memory\n - While conversing with the user, be attentive to any new information that falls into these categories:\n a) Basic Identity (age, gender, location, job title, education level, etc.)\n b) Behaviors (interests, habits, etc.)\n c) Preferences (communication style, preferred language, etc.)\n d) Goals (goals, targets, aspirations, etc.)\n e) Relationships (personal and professional relationships up to 3 degrees of separation)\n\n4. Memory Update:\n - If any new information was gathered during the interaction, update your memory as follows:\n a) Create entities for recurring organizations, people, and significant events\n b) Connect them to the current entities using relations\n c) Store facts about them as observations\n```\n\n## Building\n\nDocker:\n\n```sh\ndocker build -t mcp/memory -f src/memory/Dockerfile . \n```\n\nFor Awareness: a prior mcp/memory volume contains an index.js file that could be overwritten by the new container. If you are using a docker volume for storage, delete the old docker volume's `index.js` file before starting the new container.\n\n## License\n\nThis MCP server is licensed under the MIT License. This means you are free to use, modify, and distribute the software, subject to the terms and conditions of the MIT License. For more details, please see the LICENSE file in the project repository."
|
|
81
|
+
},
|
|
82
|
+
"playwright": {
|
|
83
|
+
"source": "https://raw.githubusercontent.com/microsoft/playwright-mcp/main/README.md",
|
|
84
|
+
"format": "markdown",
|
|
85
|
+
"bytes": 55464,
|
|
86
|
+
"truncated": true,
|
|
87
|
+
"body": "## Playwright MCP\n\nA Model Context Protocol (MCP) server that provides browser automation capabilities using [Playwright](https://playwright.dev/). This server enables LLMs to interact with web pages through structured accessibility snapshots, bypassing the need for screenshots or visually-tuned models.\n\n### Playwright MCP vs Playwright CLI\n\nThis package provides MCP interface into Playwright. If you are using a **coding agent**, you might benefit from using the [CLI+SKILLS](https://github.com/microsoft/playwright-cli) instead.\n\n- **CLI**: Modern **coding agents** increasingly favor CLI–based workflows exposed as SKILLs over MCP because CLI invocations are more token-efficient: they avoid loading large tool schemas and verbose accessibility trees into the model context, allowing agents to act through concise, purpose-built commands. This makes CLI + SKILLs better suited for high-throughput coding agents that must balance browser automation with large codebases, tests, and reasoning within limited context windows.**Learn more about [Playwright CLI with SKILLS](https://github.com/microsoft/playwright-cli)**.\n\n- **MCP**: MCP remains relevant for specialized agentic loops that benefit from persistent state, rich introspection, and iterative reasoning over page structure, such as exploratory automation, self-healing tests, or long-running autonomous workflows where maintaining continuous browser context outweighs token cost concerns.\n\n### Key Features\n\n- **Fast and lightweight**. Uses Playwright's accessibility tree, not pixel-based input.\n- **LLM-friendly**. No vision models needed, operates purely on structured data.\n- **Deterministic tool application**. Avoids ambiguity common with screenshot-based approaches.\n\n### Requirements\n- Node.js 18 or newer\n- VS Code, Cursor, Windsurf, Claude Desktop, Goose, Grok, Junie or any other MCP client\n\n### Getting started\n\nFirst, install the Playwright MCP server with your client.\n\n**Standard config** works in most of the tools:\n\n```js\n{\n \"mcpServers\": {\n \"playwright\": {\n \"command\": \"npx\",\n \"args\": [\n \"@playwright/mcp@latest\"\n ]\n }\n }\n}\n```\n\n[](https://insiders.vscode.dev/redirect?url=vscode%3Amcp%2Finstall%3F%257B%2522name%2522%253A%2522playwright%2522%252C%2522command%2522%253A%2522npx%2522%252C%2522args%2522%253A%255B%2522%2540playwright%252Fmcp%2540latest%2522%255D%257D) [](https://insiders.vscode.dev/redirect?url=vscode-insiders%3Amcp%2Finstall%3F%257B%2522name%2522%253A%2522playwright%2522%252C%2522command%2522%253A%2522npx%2522%252C%2522args%2522%253A%255B%2522%2540playwright%252Fmcp%2540latest%2522%255D%257D)\n\nAmp\n\nAdd via the Amp VS Code extension settings screen or by updating your settings.json file:\n\n```json\n\"amp.mcpServers\": {\n \"playwright\": {\n \"command\": \"npx\",\n \"args\": [\n \"@playwright/mcp@latest\"\n ]\n }\n}\n```\n\n**Amp CLI Setup:**\n\nAdd via the `amp mcp add` command below\n\n```bash\namp mcp add playwright -- npx @playwright/mcp@latest\n```\n\nAntigravity\n\nAdd via the Antigravity settings or by updating your configuration file:\n\n```json\n{\n \"mcpServers\": {\n \"playwright\": {\n \"command\": \"npx\",\n \"args\": [\n \"@playwright/mcp@latest\"\n ]\n }\n }\n}\n```\n\nClaude Code\n\nUse the Claude Code CLI to add the Playwright MCP server:\n\n```bash\nclaude mcp add playwright npx @playwright/mcp@latest\n```\n\nClaude Desktop\n\nFollow the MCP install [guide](https://modelcontextprotocol.io/quickstart/user), use the standard config above.\n\nCline\n\nFollow the instruction in the section [Configuring MCP Servers](https://docs.cline.bot/mcp/configuring-mcp-servers)\n\n**Example: Local Setup**\n\nAdd the following to your [`cline_mcp_settings.json`](https://docs.cline.bot/mcp/configuring-mcp-servers#editing-mcp-settings-files) file:\n\n```json\n{\n \"mcpServers\": {\n \"playwright\": {\n \"type\": \"stdio\",\n \"command\": \"npx\",\n \"timeout\": 30,\n \"args\": [\n \"-y\",\n \"@playwright/mcp@latest\"\n ],\n \"disabled\": false\n }\n }\n}\n```\n\nCodex\n\nUse the Codex CLI to add the Playwright MCP server:\n\n```bash\ncodex mcp add playwright npx \"@playwright/mcp@latest\"\n```\n\nAlternatively, create or edit the configuration file `~/.codex/config.toml` and add:\n\n```toml\n[mcp_servers.playwright]\ncommand = \"npx\"\nargs = [\"@playwright/mcp@latest\"]\n```\n\nFor more information, see the [Codex MCP documentation](https://github.com/openai/codex/blob/main/codex-rs/config.md#mcp_servers).\n\nCopilot\n\nUse the Copilot CLI to interactively add the Playwright MCP server:\n\n```bash\n/mcp add\n```\n\nAlternatively, create or edit the configuration file `~/.copilot/mcp-config.json` and add:\n\n```json\n{\n \"mcpServers\": {\n \"playwright\": {\n \"type\": \"local\",\n \"command\": \"npx\",\n \"tools\": [\n \"*\"\n ],\n \"args\": [\n \"@playwright/mcp@latest\"\n ]\n }\n }\n}\n```\n\nFor more information, see the [Copilot CLI documentation](https://docs.github.com/en/copilot/concepts/agents/about-copilot-cli).\n\nCursor\n\n#### Click the button to install:\n\n[](https://cursor.com/en/install-mcp?name=Playwright&config=eyJjb21tYW5kIjoibnB4IEBwbGF5d3JpZ2h0L21jcEBsYXRlc3QifQ%3D%3D)\n\n#### Or install manually:\n\nGo to `Cursor Settings` -> `MCP` -> `Add new MCP Server`. Name to your liking, use `command` type with the command `npx @playwright/mcp@latest`. You can also verify config or add command like arguments via clicking `Edit`.\n\nFactory\n\nUse the Factory CLI to add the Playwright MCP server:\n\n```bash\ndroid mcp add playwright \"npx @playwright/mcp@latest\"\n```\n\nAlternatively, type `/mcp` within Factory droid to open an interactive UI for managing MCP servers.\n\nFor more information, see the [Factory MCP documentation](https://docs.factory.ai/cli/configuration/mcp).\n\nGemini CLI\n\nFollow the MCP install [guide](https://github.com/google-gemini/gemini-cli/blob/main/docs/tools/mcp-server.md#configure-the-mcp-server-in-settingsjson), use the standard config above.\n\nGoose\n\n#### Click the button to install:\n\n[](https://block.github.io/goose/extension?cmd=npx&arg=%40playwright%2Fmcp%40latest&id=playwright&name=Playwright&description=Interact%20with%20web%20pages%20through%20structured%20accessibility%20snapshots%20using%20Playwright)\n\n#### Or install manually:\n\nGo to `Advanced settings` -> `Extensions` -> `Add custom extension`. Name to your liking, use type `STDIO`, and set the `command` to `npx @playwright/mcp`. Click \"Add Extension\".\n\nGrok\n\nUse the Grok CLI to add the Playwright MCP server:\n\n```bash\ngrok mcp add playwright -- npx @playwright/mcp@latest\n```\n\nAlternatively, create or edit the configuration file `~/.grok/config.toml` and add:\n\n```toml\n[mcp_servers.playwright]\ncommand = \"npx\"\nargs = [\"@playwright/mcp@latest\"]\n```\n\nFor more information, see the [Grok MCP documentation](https://docs.x.ai/build/features/mcp-servers).\n\nJunie\n\nTo add the Playwright MCP server in Junie CLI:\n\n1. Type `/mcp`\n2. Press `Ctrl+A` to add a new MCP server\n3. Select **Playwright** from the list\n\nAlternatively, add to `.junie/mcp/mcp.json`:\n\n```json\n{\n \"mcpServers\": {\n \"Playwright\": {\n \"command\": \"npx\",\n \"args\": [\n \"-y\",\n \"@playwright/mcp@latest\"\n ]\n }\n }\n}\n```\n\nFor more information, see the [Junie MCP configuration documentation](https://junie.jetbrains.com/docs/junie-cli-mcp-configuration.html).\n\nKiro\n\n[](https://kiro.dev/launch/mcp/add?name=playwright&config=%7B%22command%22%3A%22npx%22%2C%22args%22%3A%5B%22%40playwright%2Fmcp%40latest%22%5D%7D)\n\nFollow the MCP Servers [documentation](https://kiro.dev/docs/mcp/). For example in `.kiro/settings/mcp.json`:\n\n```json\n{\n \"mcpServers\": {\n \"playwright\": {\n \"command\": \"npx\",\n \"args\": [\n \"@playwright/mcp@latest\"\n ]\n }\n }\n}\n```\n\nLM Studio\n\n#### Click the button to install:\n\n[](https://lmstudio.ai/install-mcp?name=playwright&config=eyJjb21tYW5kIjoibnB4IiwiYXJncyI6WyJAcGxheXdyaWdodC9tY3BAbGF0ZXN0Il19)\n\n#### Or install manually:\n\nGo to `Program` in the right sidebar -> `Install` -> `Edit mcp.json`. Use the standard config above.\n\nopencode\n\nFollow the MCP Servers [documentation](https://opencode.ai/docs/mcp-servers/). For example in `~/.config/opencode/opencode.json`:\n\n```json\n{\n \"$schema\": \"https://opencode.ai/config.json\",\n \"mcp\": {\n \"playwright\": {\n \"type\": \"local\",\n \"command\": [\n \"npx\",\n \"@playwright/mcp@latest\"\n ],\n \"enabled\": true\n }\n }\n}\n\n```\n\nQodo Gen\n\nOpen [Qodo Gen](https://docs.qodo.ai/qodo-documentation/qodo-gen) chat panel in VSCode or IntelliJ → Connect more tools → + Add new MCP → Paste the standard config above.\n\nClick Save.\n\nVS Code\n\n#### Click the button to install:\n\n[](https://insiders.vscode.dev/redirect?url=vscode%3Amcp%2Finstall%3F%257B%2522name%2522%253A%2522playwright%2522%252C%2522command%2522%253A%2522npx%2522%252C%2522args%2522%253A%255B%2522%2540playwright%252Fmcp%2540latest%2522%255D%257D) [](https://insiders.vscode.dev/redirect?url=vscode-insiders%3Amcp%2Finstall%3F%257B%2522name%2522%253A%2522playwright%2522%252C%2522command%2522%253A%2522npx%2522%252C%2522args%2522%253A%255B%2522%2540playwright%252Fmcp%2540latest%2522%255D%257D)\n\n#### Or install manually:\n\nFollow the MCP install [guide](https://code.visualstudio.com/docs/copilot/chat/mcp-servers#_add-an-mcp-server), use the standard config above. You can also install the Playwright MCP server using the VS Code CLI:\n\n```bash\n# For VS Code\ncode --add-mcp '{\"name\":\"playwright\",\"command\":\"npx\",\"args\":[\"@playwright/mcp@latest\"]}'\n```\n\nAfter installation, the Playwright MCP server will be available for use with your GitHub Copilot agent in VS Code.\n\nWarp\n\nGo to `Settings` -> `AI` -> `Manage MCP Servers` -> `+ Add` to [add an MCP Server](https://docs.warp.dev/knowledge-and-collaboration/mcp#adding-an-mcp-server). Use the standard config above.\n\nAlternatively, use the slash command `/add-mcp` in the Warp prompt and paste the standard config from above:\n```js\n{\n \"mcpServers\": {\n \"playwright\": {\n \"command\": \"npx\",\n \"args\": [\n \"@playwright/mcp@latest\"\n ]\n }\n }\n}\n```\n\nWindsurf\n\nFollow Windsurf MCP [documentation](https://docs.windsurf.com/windsurf/cascade/mcp). Use the standard config above.\n\n### Configuration\n\nPlaywright MCP server supports following arguments. They can be provided in the JSON configuration above, as a part of the `\"args\"` list:\n\n| Option | Description |\n|--------|-------------|\n| --allowed-hosts | comma-separated list of hosts this server is allowed to serve from. Defaults to the host the server is bound to. Pass '*' to disable the host check.*env* `PLAYWRIGHT_MCP_ALLOWED_HOSTS` |\n| --allowed-origins | semicolon-separated list of TRUSTED origins to allow the browser to request. Default is to allow all. Important: *does not* serve as a security boundary and *does not* affect redirects.*env* `PLAYWRIGHT_MCP_ALLOWED_ORIGINS` |\n| --allow-unrestricted-file-access | allow access to files outside of the workspace roots. Also allows unrestricted access to file:// URLs. By default access to file system is restricted to workspace root directories (or cwd if no roots are configured) only, and navigation to file:// URLs is blocked.*env* `PLAYWRIGHT_MCP_ALLOW_UNRESTRICTED_FILE_ACCESS` |\n| --blocked-origins | semicolon-separated list of origins to block the browser from requesting. Blocklist is evaluated before allowlist. If used without the allowlist, requests not matching the blocklist are still allowed. Important: *does not* serve as a security boundary and *does not* affect redirects.*env* `PLAYWRIGHT_MCP_BLOCKED_ORIGINS` |\n| --block-service-workers | block service workers*env* `PLAYWRIGHT_MCP_BLOCK_SERVICE_WORKERS` |\n| --browser | browser or chrome channel to use, possible values: chrome, firefox, webkit, msedge.*env* `PLAYWRIGHT_MCP_BROWSER` |\n| --caps | comma-separated list of additional capabilities to enable, possible values: vision, pdf, devtools.*env* `PLAYWRIGHT_MCP_CAPS` |\n| --cdp-endpoint | CDP endpoint to connect to.*env* `PLAYWRIGHT_MCP_CDP_ENDPOINT` |\n| --cdp-header | CDP headers to send with the connect request, multiple can be specified.*env* `PLAYWRIGHT_MCP_CDP_HEADERS` |\n| --cdp-timeout | timeout in milliseconds for connecting to CDP endpoint, defaults to 30000ms*env* `PLAYWRIGHT_MCP_CDP_TIMEOUT` |\n| --codegen | specify the language to use for code generation, possible values: \"typescript\", \"python\", \"java\", \"csharp\", \"none\". Default is \"typescript\".*env* `PLAYWRIGHT_MCP_CODEGEN` |\n| --config | path to the configuration file.*env* `PLAYWRIGHT_MCP_CONFIG` |\n| --console-level | level of console messages to return: \"error\", \"warning\", \"info\", \"debug\". Each level includes the messages of more severe levels.*env* `PLAYWRIGHT_MCP_CONSOLE_LEVEL` |\n| --device | device to emulate, for example: \"iPhone 15\"*env* `PLAYWRIGHT_MCP_DEVICE` |\n| --mobile | emulate a generic mobile device (Pixel 10 for Chromium, iPhone 17 for WebKit). Mobile pages are usually lighter, which saves tokens. Cannot be combined with --device.*env* `PLAYWRIGHT_MCP_MOBILE` |\n| --executable-path | path to the browser executable.*env* `PLAYWRIGHT_MCP_EXECUTABLE_PATH` |\n| --extension | Connect to a running browser instance (Edge/Chrome only). Requires the \"Playwright Extension\" to be installed.*env* `PLAYWRIGHT_MCP_EXTENSION` |\n| --endpoint | Bound browser endpoint to connect to.*env* `PLAYWRIGHT_MCP_ENDPOINT` |\n| --grant-permissions | List of permissions to grant to the browser context, for example \"geolocation\", \"clipboard-read\", \"clipboard-write\".*env* `PLAYWRIGHT_MCP_GRANT_PERMISSIONS` |\n| --headless | run browser in headless mode, headed by default*env* `PLAYWRIGHT_MCP_HEADLESS` |\n| --host | host to bind server to. Default is localhost. Use 0.0.0.0 to bind to all interfaces.*env* `PLAYWRIGHT_MCP_HOST` |\n| --ignore-https-errors | ignore https errors*env* `PLAYWRIGHT_MCP_IGNORE_HTTPS_ERRORS` |\n| --init-page | path to TypeScript file to evaluate on Playwright page object*env* `PLAYWRIGHT_MCP_INIT_PAGE` |\n| --init-script | path to JavaScript file to add as an initialization script. The script will be evaluated in every page before any of the page's scripts. Can be specified multiple times.*env* `PLAYWRIGHT_MCP_INIT_SCRIPT` |\n| --isolated | keep the browser profile in memory, do not save it to disk.*env* `PLAYWRIGHT_MCP_ISOLATED` |\n| --image-responses | whether to send image responses to the client. Can be \"allow\" or \"omit\", Defaults to \"allow\".*env* `PLAYWRIGHT_MCP_IMAGE_RESPONSES` |\n| --no-sandbox | disable the sandbox for all process types that are normally sandboxed.*env* `PLAYWRIGHT_MCP_NO_SANDBOX` |\n| --output-dir | path to the directory for output files.*env* `PLAYWRIGHT_MCP_OUTPUT_DIR` |\n| --output-max-size | Threshold for evicting old output files, in bytes.*env* `PLAYWRIGHT_MCP_OUTPUT_MAX_SIZE` |\n| --port | port to listen on for SSE transport.*env* `PLAYWRIGHT_MCP_PORT` |\n| --proxy-bypass | comma-separated domains to bypass proxy, for example \".com,chromium.org,.domain.com\"*env* `PLAYWRIGHT_MCP_PROXY_BYPASS` |\n| --proxy-server | specify proxy server, for example \"http://myproxy:3128\" or \"socks5://myproxy:8080\"*env* `PLAYWRIGHT_MCP_PROXY_SERVER` |\n| --sandbox | enable the sandbox for all process types that are normally not sandboxed.*env* `PLAYWRIGHT_MCP_SANDBOX` |\n| --save-session | Whether to save the Playwright MCP session into the output directory.*env* `PLAYWRIGHT_MCP_SAVE_SESSION` |\n| --secrets | path to a file containing secrets in the dotenv format*env* `PLAYWRIGHT_MCP_SECRETS_FILE` |\n| --shared-browser-context | reuse the same browser context between all connected HTTP clients.*env* `PLAYWRIGHT_MCP_SHARED_BROWSER_CONTEXT` |\n| --snapshot-boxes | include each element's bounding box as [box=x,y,width,height] in snapshots. Coordinates are viewport-relative, in CSS pixels.*env* `PLAYWRIGHT_MCP_SNAPSHOT_BOXES` |\n| --snapshot-mode | when taking snapshots for responses, specifies the mode to use. Can be \"full\" or \"none\". Default is \"full\".*env* `PLAYWRIGHT_MCP_SNAPSHOT_MODE` |\n| --storage-state | path to the storage state file for isolated sessions.*env* `PLAYWRIGHT_MCP_STORAGE_STATE` |\n| --test-id-attribute | specify the attribute to use for test ids, defaults to \"data-testid\"*env* `PLAYWRIGHT_MCP_TEST_ID_ATTRIBUTE` |\n| --timeout-action | specify action timeout in milliseconds, defaults to 5000ms*env* `PLAYWRIGHT_MCP_TIMEOUT_ACTION` |\n| --timeout-navigation | specify navigation timeout in milliseconds, defaults to 60000ms*env* `PLAYWRIGHT_MCP_TIMEOUT_NAVIGATION` |\n| --timeout-settle | how long to wait after each action for triggered work to settle, in milliseconds, defaults to 500ms*env* `PLAYWRIGHT_MCP_TIMEOUT_SETTLE` |\n| --user-agent | specify user agent string*env* `PLAYWRIGHT_MCP_USER_AGENT` |\n| --user-data-dir | path to the user data directory. If not specified, a temporary directory will be created.*env* `PLAYWRIGHT_MCP_USER_DATA_DIR` |\n| --viewport-size | specify browser viewport size in pixels, for example \"1280x720\"*env* `PLAYWRIGHT_MCP_VIEWPORT_SIZE` |\n\n### User profile\n\nYou can run Playwright MCP with persistent profile like a regular browser (default), in isolated contexts for testing sessions, or connect to your existing browser using the browser extension.\n\n**Persistent profile**\n\nAll the logged in information will be stored in the persistent profile, you can delete it between sessions if you'd like to clear the offline state.\nPersistent profile is located at the following locations and you can override it with the `--user-data-dir` argument.\n\n```bash\n# Windows\n%USERPROFILE%\\AppData\\Local\\ms-playwright\\mcp-{channel}-{workspace-hash}\n\n# macOS\n- ~/Library/Caches/ms-playwright/mcp-{channel}-{workspace-hash}\n\n# Linux\n- ~/.cache/ms-playwright/mcp-{channel}-{workspace-hash}\n```\n\n`{workspace-hash}` is derived from the MCP client's workspace root, so different projects get separate profiles automatically.\n\n> [!IMPORTANT]\n> A persistent profile can only be used by one browser instance at a time, so concurrent MCP clients sharing the same workspace will conflict. To run several clients in parallel, start each additional client with `--isolated` or point it at a distinct `--user-data-dir`.\n\n**Isolated**\n\nIn the isolated mode, each session is started in the isolated profile. Every time you ask MCP to close the browser,\nthe session is closed and all the storage state for this session is lost. You can provide initial storage state\nto the browser via the config's `contextOptions` or via the `--storage-state` argument. Learn more about the storage\nstate [here](https://playwright.dev/docs/auth).\n\n```js\n{\n \"mcpServers\": {\n \"playwright\": {\n \"command\": \"npx\",\n \"args\": [\n \"@playwright/mcp@latest\",\n \"--isolated\",\n \"--storage-state={path/to/storage.json}\"\n ]\n }\n }\n}\n```\n\n**Browser Extension**\n\nThe Playwright MCP Chrome Extension allows you to connect to existing browser tabs and leverage your logged-in sessions and browser state. See [microsoft/playwright › packages/extension](https://github.com/microsoft/playwright/tree/main/packages/extension#readme) for installation and setup instructions.\n\n### Initial state\n\nThere are multiple ways to provide the initial state to the browser context or a page.\n\nFor the storage state, you can either:\n- Start with a user data directory using the `--user-data-dir` argument. This will persist all browser data between the sessions.\n- Start with a storage state file using the `--storage-state` argument. This will load cookies and local storage from the file into an isolated browser context.\n\nFor the page state, you can use:\n\n- `--init-page` to point to a TypeScript file that will be evaluated on the Playwright page object. This allows you to run arbitrary code to set up the page.\n\n```ts\n// init-page.ts\nexport default async ({ page }) => {\n await page.context().grantPermissions(['geolocation']);\n await page.context().setGeolocation({ latitude: 37.7749, longitude: -122.4194 });\n await page.setViewportSize({ width: 1280, height: 720 });\n};\n```\n\n- `--init-script` to point to a JavaScript file that will be added as an initialization script. The script will be evaluated in every page before any of the page's scripts.\nThis is useful for overriding browser APIs or setting up the environment.\n\n```js\n// init-script.js\nwindow.isPlaywrightMCP = true;\n```\n\n### Configuration file\n\nThe Playwright MCP server can be configured using a JSON configuration file. You can specify the configuration file\nusing the `--config` command line option:\n\n```bash\nnpx @playwright/mcp@latest --config path/to/config.json\n```\n\nConfiguration file schema\n\n```typescript\n{\n /**\n * The browser to use.\n */\n browser?: {\n /**\n * The type of browser to use.\n */\n browserName?: 'chromium' | 'firefox' | 'webkit';\n\n /**\n * Keep the browser profile in memory, do not save it to disk.\n */\n isolated?: boolean;\n\n /**\n * Path to a user data directory for browser profile persistence.\n * Temporary directory is created by default.\n */\n userDataDir?: string;\n\n /**\n * Launch options passed to\n * @see https://playwright.dev/docs/api/class-browsertype#browser-type-launch-persistent-context\n *\n * This is useful for settings options like `channel`, `headless`, `executablePath`, etc.\n */\n launchOptions?: playwright.LaunchOptions;\n\n /**\n * Context options for the browser context.\n *\n * This is useful for settings options like `viewport`.\n */\n contextOptions?: playwright.BrowserContextOptions;\n\n /**\n * Chrome DevTools Protocol endpoint to connect to an existing browser instance in case of Chromium family browsers.\n */\n cdpEndpoint?: string;\n\n /**\n * CDP headers to send with the connect request.\n */\n cdpHeaders?: Record<string, string>;\n\n /**\n * Timeout in milliseconds for connecting to CDP endpoint. Defaults to 30000 (30 seconds). Pass 0 to disable timeout.\n */\n cdpTimeout?: number;\n\n /**\n * Remote endpoint to connect to an existing Playwright server. May be a\n * WebSocket URL string, or a [ConnectOptions] object that mirrors the\n * `connectOptions` shape used by the test runner. When passed as an object,\n * `exposeNetwork`, `headers`, `slowMo`, and `timeout` are forwarded to the\n * underlying connect call.\n */\n remoteEndpoint?: string | playwright.ConnectOptions & { endpoint: string };\n\n /**\n * Paths to TypeScript files to add as initialization scripts for Playwright page.\n */\n initPage?: string[];\n\n /**\n * Paths to JavaScript files to add as initialization scripts.\n * The scripts will be evaluated in every page before any of the page's scripts.\n */\n initScript?: string[];\n },\n\n /**\n * Connect to a running browser instance (Edge/Chrome only). If specified, `browser`\n * config is ignored.\n * Requires the \"Playwright Extension\" to be installed.\n */\n extension?: boolean;\n\n server?: {\n /**\n * The port to listen on for SSE or MCP transport.\n */\n port?: number;\n\n /**\n * The host to bind the server to. Default is localhost. Use 0.0.0.0 to bind to all interfaces.\n */\n host?: string;\n\n /**\n * The hosts this server is allowed to serve from. Defaults to the host server is bound to.\n * This is not for CORS, but rather for the DNS rebinding protection.\n */\n allowedHosts?: string[];\n },\n\n /**\n * List of enabled tool capabilities. Possible values:\n * - 'core': Core browser automation features.\n * - 'pdf': PDF generation and manipulation.\n * - 'vision': Coordinate-based interactions.\n * - 'devtools': Developer tools features.\n */\n capabilities?: ToolCapability[];\n\n /**\n * Whether to save the Playwright session into the output directory.\n */\n saveSession?: boolean;\n\n /**\n * Reuse the same browser context between all connected HTTP clients.\n */\n sharedBrowserContext?: boolean;\n\n /**\n * Secrets are used to replace matching plain text in the tool responses to prevent the LLM\n * from accidentally getting sensitive data. It is a convenience and not a security feature,\n * make sure to always examine information coming in and from the tool on the client.\n */\n```\n\n… (truncated — the rest is at https://raw.githubusercontent.com/microsoft/playwright-mcp/main/README.md)\n"
|
|
88
|
+
},
|
|
89
|
+
"sequential-thinking": {
|
|
90
|
+
"source": "https://raw.githubusercontent.com/modelcontextprotocol/servers/main/src/sequentialthinking/README.md",
|
|
91
|
+
"format": "markdown",
|
|
92
|
+
"bytes": 7541,
|
|
93
|
+
"truncated": false,
|
|
94
|
+
"body": "# Sequential Thinking MCP Server\n\nAn MCP server implementation that provides a tool for dynamic and reflective problem-solving through a structured thinking process.\n\nPublished on npm as [`@modelcontextprotocol/server-sequential-thinking`](https://www.npmjs.com/package/@modelcontextprotocol/server-sequential-thinking).\n\n## Features\n\n- Break down complex problems into manageable steps\n- Revise and refine thoughts as understanding deepens\n- Branch into alternative paths of reasoning\n- Adjust the total number of thoughts dynamically\n- Generate and verify solution hypotheses\n\n## Tool\n\n### sequential_thinking\n\nFacilitates a detailed, step-by-step thinking process for problem-solving and analysis.\n\n**Inputs:**\n- `thought` (string): The current thinking step\n- `nextThoughtNeeded` (boolean): Whether another thought step is needed\n- `thoughtNumber` (integer): Current thought number\n- `totalThoughts` (integer): Estimated total thoughts needed\n- `isRevision` (boolean, optional): Whether this revises previous thinking\n- `revisesThought` (integer, optional): Which thought is being reconsidered\n- `branchFromThought` (integer, optional): Branching point thought number\n- `branchId` (string, optional): Branch identifier\n- `needsMoreThoughts` (boolean, optional): If more thoughts are needed\n\n## Usage\n\nThe Sequential Thinking tool is designed for:\n- Breaking down complex problems into steps\n- Planning and design with room for revision\n- Analysis that might need course correction\n- Problems where the full scope might not be clear initially\n- Tasks that need to maintain context over multiple steps\n- Situations where irrelevant information needs to be filtered out\n\nIn practice, you do not call `sequential_thinking` directly by hand unless your client exposes raw tool calls. Instead, connect the server to an MCP-aware host and ask the model to think through a problem step by step. The host can then decide to call the tool one or more times while it works.\n\n### What it looks like in use\n\nExample prompts that typically benefit from this tool:\n\n- `Plan a database migration from PostgreSQL 14 to 16, list risks, and revise the plan if downtime exceeds 5 minutes.`\n- `Debug why this deployment only fails in production and show your reasoning step by step.`\n- `Compare three architecture options for a file sync engine and branch if one assumption turns out to be wrong.`\n\n### How to tell it is working\n\nIf your host or inspector shows tool activity, you should see repeated calls to `sequential_thinking` with fields such as:\n\n- `thought`\n- `thoughtNumber`\n- `totalThoughts`\n- `nextThoughtNeeded`\n\nWhen the reasoning changes course, you may also see revision or branching fields like `isRevision`, `revisesThought`, `branchFromThought`, or `branchId`.\n\n### Quick manual verification\n\nAfter installing the server in your MCP host:\n\n1. Restart or reload the host so it reconnects to the server.\n2. Confirm the `sequential_thinking` tool appears in the host's MCP tool list or inspector.\n3. Ask the host to solve a non-trivial problem in a step-by-step way.\n4. Verify that the host invokes the tool multiple times instead of returning a one-shot answer.\n\n## Configuration\n\n### Usage with Claude Desktop\n\nAdd this to your `claude_desktop_config.json`:\n\n#### npx\n\n```json\n{\n \"mcpServers\": {\n \"sequential-thinking\": {\n \"command\": \"npx\",\n \"args\": [\n \"-y\",\n \"@modelcontextprotocol/server-sequential-thinking\"\n ]\n }\n }\n}\n```\n\nOn Windows, use `cmd /c` to launch `npx`:\n\n```json\n{\n \"mcpServers\": {\n \"sequential-thinking\": {\n \"command\": \"cmd\",\n \"args\": [\n \"/c\",\n \"npx\",\n \"-y\",\n \"@modelcontextprotocol/server-sequential-thinking\"\n ]\n }\n }\n}\n```\n\n#### docker\n\n```json\n{\n \"mcpServers\": {\n \"sequentialthinking\": {\n \"command\": \"docker\",\n \"args\": [\n \"run\",\n \"--rm\",\n \"-i\",\n \"mcp/sequentialthinking\"\n ]\n }\n }\n}\n```\n\nTo disable logging of thought information set env var: `DISABLE_THOUGHT_LOGGING` to `true`.\n\n### Usage with VS Code\n\nFor quick installation, click one of the installation buttons below...\n\n[](https://insiders.vscode.dev/redirect/mcp/install?name=sequentialthinking&config=%7B%22command%22%3A%22npx%22%2C%22args%22%3A%5B%22-y%22%2C%22%40modelcontextprotocol%2Fserver-sequential-thinking%22%5D%7D) [](https://insiders.vscode.dev/redirect/mcp/install?name=sequentialthinking&config=%7B%22command%22%3A%22npx%22%2C%22args%22%3A%5B%22-y%22%2C%22%40modelcontextprotocol%2Fserver-sequential-thinking%22%5D%7D&quality=insiders)\n\n[](https://insiders.vscode.dev/redirect/mcp/install?name=sequentialthinking&config=%7B%22command%22%3A%22docker%22%2C%22args%22%3A%5B%22run%22%2C%22--rm%22%2C%22-i%22%2C%22mcp%2Fsequentialthinking%22%5D%7D) [](https://insiders.vscode.dev/redirect/mcp/install?name=sequentialthinking&config=%7B%22command%22%3A%22docker%22%2C%22args%22%3A%5B%22run%22%2C%22--rm%22%2C%22-i%22%2C%22mcp%2Fsequentialthinking%22%5D%7D&quality=insiders)\n\nFor manual installation, you can configure the MCP server using one of these methods:\n\n**Method 1: User Configuration (Recommended)**\nAdd the configuration to your user-level MCP configuration file. Open the Command Palette (`Ctrl + Shift + P`) and run `MCP: Open User Configuration`. This will open your user `mcp.json` file where you can add the server configuration.\n\n**Method 2: Workspace Configuration**\nAlternatively, you can add the configuration to a file called `.vscode/mcp.json` in your workspace. This will allow you to share the configuration with others.\n\n> For more details about MCP configuration in VS Code, see the [official VS Code MCP documentation](https://code.visualstudio.com/docs/copilot/customization/mcp-servers).\n\nFor NPX installation:\n\n```json\n{\n \"servers\": {\n \"sequential-thinking\": {\n \"command\": \"npx\",\n \"args\": [\n \"-y\",\n \"@modelcontextprotocol/server-sequential-thinking\"\n ]\n }\n }\n}\n```\n\nOn Windows, use:\n\n```json\n{\n \"servers\": {\n \"sequential-thinking\": {\n \"command\": \"cmd\",\n \"args\": [\n \"/c\",\n \"npx\",\n \"-y\",\n \"@modelcontextprotocol/server-sequential-thinking\"\n ]\n }\n }\n}\n```\n\nFor Docker installation:\n\n```json\n{\n \"servers\": {\n \"sequential-thinking\": {\n \"command\": \"docker\",\n \"args\": [\n \"run\",\n \"--rm\",\n \"-i\",\n \"mcp/sequentialthinking\"\n ]\n }\n }\n}\n```\n\n### Usage with Codex CLI\n\nRun the following:\n\n#### npx\n\n```bash\ncodex mcp add sequential-thinking npx -y @modelcontextprotocol/server-sequential-thinking\n```\n\n## Building\n\nDocker:\n\n```bash\ndocker build -t mcp/sequentialthinking -f src/sequentialthinking/Dockerfile .\n```\n\n## License\n\nThis MCP server is licensed under the MIT License. This means you are free to use, modify, and distribute the software, subject to the terms and conditions of the MIT License. For more details, please see the LICENSE file in the project repository."
|
|
95
|
+
},
|
|
96
|
+
"tavily": {
|
|
97
|
+
"source": "https://raw.githubusercontent.com/tavily-ai/tavily-mcp/main/README.md",
|
|
98
|
+
"format": "markdown",
|
|
99
|
+
"bytes": 8845,
|
|
100
|
+
"truncated": false,
|
|
101
|
+
"body": "# Tavily MCP Server\n\n\n\n\nThe Tavily MCP server provides:\n- search, extract, map, crawl tools\n- Real-time web search capabilities through the tavily-search tool\n- Intelligent data extraction from web pages via the tavily-extract tool\n- Powerful web mapping tool that creates a structured map of website \n- Web crawler that systematically explores websites \n\n### 📚 Helpful Resources\n- [Tutorial](https://medium.com/@dustin_36183/building-a-knowledge-graph-assistant-combining-tavily-and-neo4j-mcp-servers-with-claude-db92de075df9) on combining Tavily MCP with Neo4j MCP server\n- [Tutorial](https://medium.com/@dustin_36183/connect-your-coding-assistant-to-the-web-integrating-tavily-mcp-with-cline-in-vs-code-5f923a4983d1) on integrating Tavily MCP with Cline in VS Code\n\n## Remote MCP Server\n\nConnect directly to Tavily's remote MCP server instead of running it locally. This provides a seamless experience without requiring local installation or configuration.\n\nSimply use the remote MCP server URL with your Tavily API key:\n\n``` \nhttps://mcp.tavily.com/mcp/?tavilyApiKey=<your-api-key> \n```\n Get your Tavily API key from [tavily.com](https://www.tavily.com/).\n\nAlternatively, you can pass your API key through an Authorization header if the MCP client supports this:\n\n```\nAuthorization: Bearer <your-api-key>\n```\n**Note:** When using the remote MCP, you can specify default parameters for all requests by including a `DEFAULT_PARAMETERS` header containing a JSON object with your desired defaults. Example:\n\n```json\n{\"include_images\":true, \"search_depth\": \"basic\", \"max_results\": 10}\n```\n\n## Connect to Claude Code\n\n[Claude Code](https://docs.anthropic.com/en/docs/claude-code) is Anthropic's official CLI tool for Claude. You can add the Tavily MCP server using the `claude mcp add` command. There are two ways to authenticate:\n\n#### Option 1: API Key in URL\n\nPass your API key directly in the URL. Replace `<your-api-key>` with your actual [Tavily API key](https://www.tavily.com/):\n\n```bash\nclaude mcp add --transport http tavily https://mcp.tavily.com/mcp/?tavilyApiKey=<your-api-key>\n```\n\n#### Option 2: OAuth Authentication Flow\n\nAdd the server without an API key in the URL:\n\n```bash\nclaude mcp add --transport http tavily https://mcp.tavily.com/mcp\n```\n\nAfter adding, you'll need to complete the authentication flow:\n1. Run `claude` to start Claude Code\n2. Type `/mcp` to open the MCP server management\n3. Select the Tavily server and complete the authentication process\n\n**Tip:** Add `--scope user` to either command to make the Tavily MCP server available globally across all your projects:\n\n```bash\nclaude mcp add --transport http --scope user tavily https://mcp.tavily.com/mcp/?tavilyApiKey=<your-api-key>\n```\n\nOnce configured, you'll have access to the Tavily search, extract, map, and crawl tools.\n\n## Connect to Cursor\n[](https://cursor.com/en/install-mcp?name=tavily-remote-mcp&config=eyJjb21tYW5kIjoibnB4IC15IG1jcC1yZW1vdGUgaHR0cHM6Ly9tY3AudGF2aWx5LmNvbS9tY3AvP3RhdmlseUFwaUtleT08eW91ci1hcGkta2V5PiIsImVudiI6e319)\n\nClick the ⬆️ Add to Cursor ⬆️ button, this will do most of the work for you but you will still need to edit the configuration to add your API-KEY. You can get a Tavily API key [here](https://www.tavily.com/).\n\nonce you click the button you should be redirect to Cursor ...\n\n### Step 1\nClick the install button\n\n\n\n### Step 2\nYou should see the MCP is now installed, if the blue slide is not already turned on, manually turn it on. You also need to edit the configuration to include your own Tavily API key.\n\n\n### Step 3\nYou will then be redirected to your `mcp.json` file where you have to add `your-api-key`.\n\n```json\n{\n \"mcpServers\": {\n \"tavily-remote-mcp\": {\n \"command\": \"npx -y mcp-remote https://mcp.tavily.com/mcp/?tavilyApiKey=<your-api-key>\",\n \"env\": {}\n }\n }\n}\n```\n\n### Remote MCP Server OAuth Flow\n\nThe Tavily Remote MCP server supports secure OAuth authentication, allowing you to connect and authorize seamlessly with compatible clients.\n\n#### How to Set Up OAuth Authentication\n\n**A. Using MCP Inspector:**\n\n* Open the MCP Inspector and click \"Open Auth Settings\".\n* Select the OAuth flow and complete these steps:\n 1. Metadata discovery\n 2. Client registration\n 3. Preparing authorization\n 4. Request authorization and obtain the authorization code\n 5. Token request\n 6. Authentication complete\n\nOnce finished, you will receive an access token that lets you securely make authenticated requests to the Tavily Remote MCP server.\n\n**B. Using other MCP Clients (Example: Cursor):**\n\nYou can configure your MCP client to use OAuth without including your Tavily API key in the URL. For example, in your `mcp.json`:\n\n```json\n{\n \"mcpServers\": {\n \"tavily-remote-mcp\": {\n \"command\": \"npx mcp-remote https://mcp.tavily.com/mcp\",\n \"env\": {}\n }\n }\n}\n```\n\nIf you need to clear stored OAuth credentials and reauthenticate, run:\n\n```bash\nrm -rf ~/.mcp-auth\n```\n\n> **Note:**\n> - OAuth authentication is optional. You can still use API key authentication at any time by including your Tavily API key in the URL query parameter (`?tavilyApiKey=...`) or by setting it in the `Authorization` header, as described above.\n\n#### Selecting Which API Key Is Used for OAuth\n\nAfter successful OAuth authentication, you can control which API key is used by naming it `mcp_auth_default`:\n\n- If you set a key named `mcp_auth_default` in your **personal account**, that key will be used for the auth flow.\n- If you are part of a **team** that has a key named `mcp_auth_default`, that key will be used for the auth flow.\n- If you have **both** a personal key and a team key named `mcp_auth_default`, the **personal key will be prioritized**.\n- If no `mcp_auth_default` key is set, the `default` key in your personal account will be used. If no `default` key is set, the first available key will be used.\n\n## Local MCP \n\n### Prerequisites 🔧\n\nBefore you begin, ensure you have:\n\n- [Tavily API key](https://app.tavily.com/home)\n - If you don't have a Tavily API key, you can sign up for a free account [here](https://app.tavily.com/home)\n- [Claude Desktop](https://claude.ai/download) or [Cursor](https://cursor.sh/)\n- [Node.js](https://nodejs.org/) (v20 or higher)\n - You can verify your Node.js installation by running:\n - `node --version`\n- [Git](https://git-scm.com/downloads) installed (only needed if using Git installation method)\n - On macOS: `brew install git`\n - On Linux: \n - Debian/Ubuntu: `sudo apt install git`\n - RedHat/CentOS: `sudo yum install git`\n - On Windows: Download [Git for Windows](https://git-scm.com/download/win)\n\n### Running with NPX \n\n```bash\nnpx -y tavily-mcp@latest \n```\n\n## Default Parameters Configuration ⚙️\n\nYou can set default parameter values for the `tavily-search` tool using the `DEFAULT_PARAMETERS` environment variable. This allows you to configure default search behavior without specifying these parameters in every request.\n\n### Example Configuration\n\n```bash\nexport DEFAULT_PARAMETERS='{\"include_images\": true}'\n```\n\n### Example usage from Client\n```json\n{\n \"mcpServers\": {\n \"tavily-mcp\": {\n \"command\": \"npx\",\n \"args\": [\"-y\", \"tavily-mcp@latest\"],\n \"env\": {\n \"TAVILY_API_KEY\": \"your-api-key-here\",\n \"DEFAULT_PARAMETERS\": \"{\\\"include_images\\\": true, \\\"max_results\\\": 15, \\\"search_depth\\\": \\\"advanced\\\"}\"\n }\n }\n }\n}\n```\n\n## Identifying the End User (Optional)\n\nYou can optionally identify the end user on whose behalf requests are being made by setting the `TAVILY_HUMAN_ID` environment variable. When set, Tavily MCP forwards it as the `X-Human-Id` header on every API call, enabling per-user analytics.\n\nThis is **entirely optional** — leave it unset and behavior is unchanged.\n\n```json\n{\n \"mcpServers\": {\n \"tavily-mcp\": {\n \"command\": \"npx\",\n \"args\": [\"-y\", \"tavily-mcp@latest\"],\n \"env\": {\n \"TAVILY_API_KEY\": \"your-api-key-here\",\n \"TAVILY_HUMAN_ID\": \"your-user-id\"\n }\n }\n }\n}\n```\n\n**Privacy note:** Tavily hashes `human_id` server-side (SHA-256) before storage, so the raw value is never persisted. Even so, prefer opaque identifiers (e.g. an internal user ID) over raw PII like emails when possible.\n\n## Acknowledgments ✨\n\n- [Model Context Protocol](https://modelcontextprotocol.io/) for the MCP specification\n- [Anthropic](https://anthropic.com/) for Claude Desktop"
|
|
102
|
+
},
|
|
103
|
+
"time": {
|
|
104
|
+
"source": "https://raw.githubusercontent.com/modelcontextprotocol/servers/main/src/time/README.md",
|
|
105
|
+
"format": "markdown",
|
|
106
|
+
"bytes": 7169,
|
|
107
|
+
"truncated": false,
|
|
108
|
+
"body": "# Time MCP Server\n\nA Model Context Protocol server that provides time and timezone conversion capabilities. This server enables LLMs to get current time information and perform timezone conversions using IANA timezone names, with automatic system timezone detection.\n\nSource: https://github.com/modelcontextprotocol/servers/tree/main/src/time\n\nRequires MCP Python SDK 1.x (`mcp>=1.29.0,<2`). SDK 2.0 renamed APIs this server uses. The port to v2 is in progress.\n\n### Available Tools\n\n- `get_current_time` - Get current time in a specific timezone or system timezone.\n - Required arguments:\n - `timezone` (string): IANA timezone name (e.g., 'America/New_York', 'Europe/London')\n\n- `convert_time` - Convert time between timezones.\n - Required arguments:\n - `source_timezone` (string): Source IANA timezone name\n - `time` (string): Time in 24-hour format (HH:MM)\n - `target_timezone` (string): Target IANA timezone name\n\n## Installation\n\n### Using uv (recommended)\n\nWhen using [`uv`](https://docs.astral.sh/uv/) no specific installation is needed. We will\nuse [`uvx`](https://docs.astral.sh/uv/guides/tools/) to directly run *mcp-server-time*.\n\n```bash\nuvx mcp-server-time\n```\n\n### Using PIP\n\nAlternatively you can install `mcp-server-time` via pip:\n\n```bash\npip install mcp-server-time\n```\n\nAfter installation, you can run it as a script using:\n\n```bash\npython -m mcp_server_time\n```\n\n## Configuration\n\n### Configure for Claude.app\n\nAdd to your Claude settings:\n\nUsing uvx\n\n```json\n{\n \"mcpServers\": {\n \"time\": {\n \"command\": \"uvx\",\n \"args\": [\"mcp-server-time\"]\n }\n }\n}\n```\n\nUsing docker\n\n```json\n{\n \"mcpServers\": {\n \"time\": {\n \"command\": \"docker\",\n \"args\": [\"run\", \"-i\", \"--rm\", \"-e\", \"LOCAL_TIMEZONE\", \"mcp/time\"]\n }\n }\n}\n```\n\nUsing pip installation\n\n```json\n{\n \"mcpServers\": {\n \"time\": {\n \"command\": \"python\",\n \"args\": [\"-m\", \"mcp_server_time\"]\n }\n }\n}\n```\n\n### Configure for Zed\n\nAdd to your Zed settings.json:\n\nUsing uvx\n\n```json\n\"context_servers\": [\n \"mcp-server-time\": {\n \"command\": \"uvx\",\n \"args\": [\"mcp-server-time\"]\n }\n],\n```\n\nUsing pip installation\n\n```json\n\"context_servers\": {\n \"mcp-server-time\": {\n \"command\": \"python\",\n \"args\": [\"-m\", \"mcp_server_time\"]\n }\n},\n```\n\n### Configure for VS Code\n\nFor quick installation, use one of the one-click install buttons below...\n\n[](https://insiders.vscode.dev/redirect/mcp/install?name=time&config=%7B%22command%22%3A%22uvx%22%2C%22args%22%3A%5B%22mcp-server-time%22%5D%7D) [](https://insiders.vscode.dev/redirect/mcp/install?name=time&config=%7B%22command%22%3A%22uvx%22%2C%22args%22%3A%5B%22mcp-server-time%22%5D%7D&quality=insiders)\n\n[](https://insiders.vscode.dev/redirect/mcp/install?name=time&config=%7B%22command%22%3A%22docker%22%2C%22args%22%3A%5B%22run%22%2C%22-i%22%2C%22--rm%22%2C%22mcp%2Ftime%22%5D%7D) [](https://insiders.vscode.dev/redirect/mcp/install?name=time&config=%7B%22command%22%3A%22docker%22%2C%22args%22%3A%5B%22run%22%2C%22-i%22%2C%22--rm%22%2C%22mcp%2Ftime%22%5D%7D&quality=insiders)\n\nFor manual installation, add the following JSON block to your User Settings (JSON) file in VS Code. You can do this by pressing `Ctrl + Shift + P` and typing `Preferences: Open User Settings (JSON)`.\n\nOptionally, you can add it to a file called `.vscode/mcp.json` in your workspace. This will allow you to share the configuration with others.\n\n> Note that the `mcp` key is needed when using the `mcp.json` file.\n\nUsing uvx\n\n```json\n{\n \"mcp\": {\n \"servers\": {\n \"time\": {\n \"command\": \"uvx\",\n \"args\": [\"mcp-server-time\"]\n }\n }\n }\n}\n```\n\nUsing Docker\n\n```json\n{\n \"mcp\": {\n \"servers\": {\n \"time\": {\n \"command\": \"docker\",\n \"args\": [\"run\", \"-i\", \"--rm\", \"mcp/time\"]\n }\n }\n }\n}\n```\n\n### Configure for Zencoder\n\n1. Go to the Zencoder menu (...)\n2. From the dropdown menu, select `Agent Tools`\n3. Click on the `Add Custom MCP`\n4. Add the name and server configuration from below, and make sure to hit the `Install` button\n\nUsing uvx\n\n```json\n{\n \"command\": \"uvx\",\n \"args\": [\"mcp-server-time\"]\n }\n```\n\n### Customization - System Timezone\n\nBy default, the server automatically detects your system's timezone. You can override this by adding the argument `--local-timezone` to the `args` list in the configuration.\n\nExample:\n```json\n{\n \"command\": \"python\",\n \"args\": [\"-m\", \"mcp_server_time\", \"--local-timezone=America/New_York\"]\n}\n```\n\n## Example Interactions\n\n1. Get current time:\n```json\n{\n \"name\": \"get_current_time\",\n \"arguments\": {\n \"timezone\": \"Europe/Warsaw\"\n }\n}\n```\nResponse:\n```json\n{\n \"timezone\": \"Europe/Warsaw\",\n \"datetime\": \"2024-01-01T13:00:00+01:00\",\n \"is_dst\": false\n}\n```\n\n2. Convert time between timezones:\n```json\n{\n \"name\": \"convert_time\",\n \"arguments\": {\n \"source_timezone\": \"America/New_York\",\n \"time\": \"16:30\",\n \"target_timezone\": \"Asia/Tokyo\"\n }\n}\n```\nResponse:\n```json\n{\n \"source\": {\n \"timezone\": \"America/New_York\",\n \"datetime\": \"2024-01-01T12:30:00-05:00\",\n \"is_dst\": false\n },\n \"target\": {\n \"timezone\": \"Asia/Tokyo\",\n \"datetime\": \"2024-01-01T12:30:00+09:00\",\n \"is_dst\": false\n },\n \"time_difference\": \"+13.0h\",\n}\n```\n\n## Debugging\n\nYou can use the MCP inspector to debug the server. For uvx installations:\n\n```bash\nnpx @modelcontextprotocol/inspector uvx mcp-server-time\n```\n\nOr if you've installed the package in a specific directory or are developing on it:\n\n```bash\ncd path/to/servers/src/time\nnpx @modelcontextprotocol/inspector uv run mcp-server-time\n```\n\n## Examples of Questions for Claude\n\n1. \"What time is it now?\" (will use system timezone)\n2. \"What time is it in Tokyo?\"\n3. \"When it's 4 PM in New York, what time is it in London?\"\n4. \"Convert 9:30 AM Tokyo time to New York time\"\n\n## Build\n\nDocker build:\n\n```bash\ncd src/time\ndocker build -t mcp/time .\n```\n\n## Contributing\n\nWe encourage contributions to help expand and improve mcp-server-time. Whether you want to add new time-related tools, enhance existing functionality, or improve documentation, your input is valuable.\n\nFor examples of other MCP servers and implementation patterns, see:\nhttps://github.com/modelcontextprotocol/servers\n\nPull requests are welcome! Feel free to contribute new ideas, bug fixes, or enhancements to make mcp-server-time even more powerful and useful.\n\n## License\n\nmcp-server-time is licensed under the MIT License. This means you are free to use, modify, and distribute the software, subject to the terms and conditions of the MIT License. For more details, please see the LICENSE file in the project repository."
|
|
109
|
+
}
|
|
110
|
+
}
|
|
111
|
+
}
|