Claude Code + MCP: Connect External Tools to Your Dev Agent Safely
Has Claude Code help you connect an MCP server (a database, Notion, GitHub, your own API...), choosing the right transport and scope, using .mcp.json or claude mcp add, handling secrets and OAuth securely, and finally demonstrating how mcp__server__tool tools and @resource pull external data into your workflow.
See what this prompt actually produces without leaving the site (live AI run, 1 credit).
Don't just copy-paste — download and drop it at ~/.claude/skills/mcp-connect-external-tools/SKILL.md and every future session can use it automatically.
mkdir -p ~/.claude/skills/mcp-connect-external-tools && mv ~/Downloads/SKILL.md ~/.claude/skills/mcp-connect-external-tools/SKILL.mdNew-Item -ItemType Directory -Force "$env:USERPROFILE\.claude\skills\mcp-connect-external-tools" | Out-Null; Move-Item "$env:USERPROFILE\Downloads\SKILL.md" "$env:USERPROFILE\.claude\skills\mcp-connect-external-tools\SKILL.md"When to use: You keep manually copying things from external systems (Notion pages, Postgres queries, GitHub/Jira tickets, your own API responses) into Claude Code. Why it works: MCP is the standard external-integration mechanism Claude Code genuinely supports as of 2026; this prompt forces Claude to nail down the three decisions most likely to go wrong before doing anything—transport (http for remote cloud services, stdio for local tools, SSE is deprecated), scope (local for yourself / project written into .mcp.json for the team / user for cross-project use), and secret handling (project scope must always use `${ENV}` expansion, and tokens must never be written into a file that goes into version control). Tips: (1) once connected, you don't need to memorize `mcp__server__tool`—just describe what you need in plain language and Claude routes it itself; (2) pick external 'resources' with `@` in the input box, the same way you'd pick a file; (3) for remote services that need login, run OAuth via `/mcp`, and you can check status in that same panel.
Phase 1 決策: - 你的目標是 Notion 官方遠端服務 → transport 選 HTTP(雲服務、支援 OAuth)。 - 這是你個人跨專案要用、且 Notion 走 OAuth 不需手動塞 token → scope 選 user。 - Auth:OAuth 2.0,連上後用 /mcp 登入,不需在任何檔案放金鑰(最安全)。 Phase 2 指令: claude mcp add --transport http --scope user notion https://mcp.notion.com/mcp 驗證: claude mcp list # 看到 notion 在 Claude Code 內打 /mcp # 對 notion 點 Authenticate 完成 OAuth;健康時顯示已連線 + 工具數 實際使用(白話即可,Claude 自動路由到 mcp__notion__* 工具): 「把我『Q2 上線清單』Notion 資料庫裡狀態還是 Todo 的項目列出來」 「在輸入框打 @ 選那個 Notion 頁面,照它更新我們的 email 範本」 移除:claude mcp remove notion ✅ HTTP ✅ user scope ✅ OAuth 無明文金鑰 ✅ /mcp 已驗證 ✅ 範例可跑
[TARGET_SYSTEM]你要接的外部系統,含名稱與型態(例:『Notion,官方遠端 MCP https://mcp.notion.com/mcp』『本地 Postgres 資料庫』『公司內部 REST API,需 Bearer token』)
[DESIRED_CAPABILITIES]接上後想讓 Claude 能做的事(例:『讀某個 Notion 資料庫並更新狀態』『查使用者表撈 email』『讀 Jira ticket 並開 PR』)
填下面的欄位,上方 prompt 會即時替換 [方括號] 內容。填好後按「複製組好的 prompt」直接丟進工具。
You are setting up a Model Context Protocol (MCP) server connection for Claude Code so I can stop copy-pasting data from an external system into chat. Use real Claude Code MCP commands and config formats only.
## The external system I want to connect
{{TARGET_SYSTEM}}
## What I want Claude to be able to do once connected
{{DESIRED_CAPABILITIES}}
## Phase 1 — Decide the setup (explain your choices)
Ask me anything you genuinely need, then recommend ONE concrete setup and justify it:
1. **Transport**: HTTP (recommended for remote cloud services, supports OAuth) vs stdio (a local process for tools needing direct system access / custom scripts) vs SSE (deprecated — avoid). Pick one for my system and say why.
2. **Scope** of the config:
- `local` (default): only me, only this project.
- `project`: shared with my team via a `.mcp.json` committed to the repo root.
- `user`: just me, across all my projects.
Recommend one based on whether this is a team tool or personal, and whether secrets are involved.
3. **Auth**: static header token, OAuth 2.0 (handled interactively via `/mcp`), or env-injected key for a stdio server. Tell me which my system uses.
4. **Secret safety**: a real plan so no API key ends up committed. For project scope, use environment variable expansion in `.mcp.json` (e.g. values like `${MY_API_KEY}`) and keep the actual secret out of git; for local/user scope, pass via `--env` or `--header`.
## Phase 2 — Give me the exact setup
Output, ready to run:
### A) The command or config
- If a CLI add is cleanest, give the exact `claude mcp add` command. Remember real syntax: all flags (`--transport`, `--scope`, `--env`, `--header`) come BEFORE the server name; for stdio, put `--` before the actual command, e.g.
`claude mcp add --transport http <name> <url> --header "Authorization: Bearer <token>"`
`claude mcp add --env KEY=value --transport stdio <name> -- npx -y <server-package>`
- If project/team scope, instead give me the `.mcp.json` snippet to place at the repo root, using `${ENV_VAR}` expansion for any secret, and remind me Claude Code prompts for approval before using project-scoped servers.
### B) Verify the connection
- `claude mcp list` to see all servers, `claude mcp get <name>` for one, and the in-session `/mcp` panel to check status, tool count, and run OAuth login if the server needs it.
- Tell me what a healthy vs pending/failed state looks like.
### C) Use it in a real task
Give me 2-3 concrete natural-language prompts that exercise my desired capabilities, and note how MCP surfaces them:
- Tools are namespaced `mcp__<server>__<tool>` — I don't call these by hand, I just ask in plain language and Claude routes to them.
- If the server exposes **resources**, I can pull them in by typing `@` in my prompt to pick from the autocomplete (resources appear alongside files).
- If it exposes **prompts**, they appear as `/mcp__<server>__<promptname>` slash commands.
### D) Safety + teardown
- Note least-privilege: only connect servers I trust; project `.mcp.json` servers require my approval before first use.
- Give me `claude mcp remove <name>` to disconnect, and where the config is stored for each scope.
## Rules
- Use only commands, flags, and config keys that actually exist in Claude Code. If unsure whether something exists, say so rather than guessing.
- Never put a real secret inline in a committed file; always route it through env expansion or `--env`/`--header`.
- Be specific to MY system in {{TARGET_SYSTEM}} — pick real, named transport/scope/auth, don't hand me a generic menu.
- End with a checklist: transport chosen ✅, scope chosen ✅, secret-safe ✅, verified via `/mcp` ✅, one working example prompt ✅.Suno Engineer's Mindset: 4 Steps to a Song That Doesn't Sound Like AI
A studio engineer's breakdown of Suno's fatal weaknesses (fried vocals, high-frequency artifacts), plus a 4-step DAW workflow and a Suno Studio cleanup prompt.
5 Claude Weekly Workflows That Stuck After 6 Months
Proposal generator / meeting processor / content repurposer / Friday review / shutdown reset — out of 40 I tried, only these 5 survived, each saving 30+ minutes per run.