{"id":168493,"date":"2026-06-13T19:06:50","date_gmt":"2026-06-13T16:06:50","guid":{"rendered":"https:\/\/computingforgeeks.com\/?p=168493"},"modified":"2026-06-13T19:06:50","modified_gmt":"2026-06-13T16:06:50","slug":"claude-code-mcp-servers-setup","status":"publish","type":"post","link":"https:\/\/computingforgeeks.com\/claude-code-mcp-servers-setup\/","title":{"rendered":"Connect Claude Code to MCP Servers (Setup and Best Servers)"},"content":{"rendered":"<p>Claude Code is sharp on its own. Point it at MCP servers and it can read your database, drive a browser, open GitHub issues, and pull current library docs without you pasting anything into the prompt. The model gains tools, and it uses them on its own.<\/p>\n\n<p>This is a complete Claude Code MCP setup. You will add a local stdio server, add a remote HTTP server, share both with your team through a committable <code>.mcp.json<\/code>, pass tokens safely, actually use the tools once they connect, and fix the gotchas that send people to the forums. Every command here was run on a real machine, output included.<\/p>\n\n<p><em>Ran every command here on Claude Code 2.1.177 (macOS and Ubuntu 24.04) in June 2026; it works end to end.<\/em><\/p>\n\n<h2>What you need<\/h2>\n\n<p>Three things, and you almost certainly have the first two:<\/p>\n\n\n<ul class=\"wp-block-list\">\n<li>A working Claude Code install. If you are starting fresh, <a href=\"https:\/\/computingforgeeks.com\/install-claude-code-ubuntu-2604\/\">install Claude Code<\/a> first.<\/li>\n<li>Node.js, because most servers launch through <code>npx<\/code>.<\/li>\n<li>A terminal sitting in the project you want to wire up.<\/li>\n<\/ul>\n\n\n<p>Confirm the CLI is current before you start:<\/p>\n\n\n<pre class=\"wp-block-code code\"><code>claude --version<\/code><\/pre>\n\n\n<p>You want a recent 2.1.x line, since the MCP commands below changed shape over the 2.0 era:<\/p>\n\n\n<pre class=\"wp-block-code code\"><code>2.1.177 (Claude Code)<\/code><\/pre>\n\n\n<p>Current and working. Here is how the connection actually happens.<\/p>\n\n<h2>How MCP servers connect<\/h2>\n\n<p>An MCP server is a small program that exposes tools and data to the model over the Model Context Protocol. Two kinds matter in practice. A <strong>stdio<\/strong> server runs as a local process Claude launches itself. An <strong>HTTP<\/strong> server is hosted somewhere and you connect to it by URL. You add both with <code>claude mcp add<\/code>, and the only real difference is the transport.<\/p>\n\n<h2>Add a local server<\/h2>\n\n<p>Start with a filesystem server so Claude can read and write inside one directory you pick. This is stdio, the default transport, so no transport flag is needed:<\/p>\n\n\n<pre class=\"wp-block-code code\"><code>claude mcp add --scope project filesystem -- npx -y @modelcontextprotocol\/server-filesystem ~\/projects<\/code><\/pre>\n\n\n<p>The <code>--<\/code> matters. Everything after it is the command Claude runs to start the server, kept separate from Claude&#8217;s own flags. The confirmation tells you what was registered and which file changed:<\/p>\n\n\n<pre class=\"wp-block-code code\"><code>Added stdio MCP server filesystem with command: npx -y @modelcontextprotocol\/server-filesystem ~\/projects to project config\nFile modified: \/home\/jmutai\/projects\/.mcp.json<\/code><\/pre>\n\n\n<p>That is a working server. The next one lives on someone else&#8217;s box.<\/p>\n\n<h2>Add a remote server over HTTP<\/h2>\n\n<p>Many of the best servers are hosted, so you connect by URL and set the transport to <code>http<\/code>. Sentry is a clean example because the URL is public:<\/p>\n\n\n<pre class=\"wp-block-code code\"><code>claude mcp add --scope project --transport http sentry https:\/\/mcp.sentry.dev\/mcp<\/code><\/pre>\n\n\n<p>Same confirmation pattern, this time recording an HTTP server:<\/p>\n\n\n<pre class=\"wp-block-code code\"><code>Added HTTP MCP server sentry with URL: https:\/\/mcp.sentry.dev\/mcp to project config\nFile modified: \/home\/jmutai\/projects\/.mcp.json<\/code><\/pre>\n\n\n<p>Three transports exist: <code>stdio<\/code> (the default), <code>http<\/code> for hosted servers, and <code>sse<\/code>. The <code>http<\/code> transport is the current Streamable HTTP standard, and the <code>type<\/code> field accepts <code>streamable-http<\/code> as an alias, so a config block you copy straight from a vendor&#8217;s docs works without edits. SSE still parses but it is deprecated, so reach for <code>http<\/code> on anything new.<\/p>\n\n<h2>Choose the right scope<\/h2>\n\n<p>Scope decides who sees the server and which file holds it. There are three, and the default trips people up.<\/p>\n\n\n<figure class=\"wp-block-table\"><table><thead><tr><th>Scope<\/th><th>Stored in<\/th><th>Who gets it<\/th><\/tr><\/thead><tbody>\n<tr><td><code>local<\/code> (default)<\/td><td><code>~\/.claude.json<\/code><\/td><td>Just you, just this project<\/td><\/tr>\n<tr><td><code>user<\/code><\/td><td><code>~\/.claude.json<\/code><\/td><td>Just you, every project<\/td><\/tr>\n<tr><td><code>project<\/code><\/td><td><code>.mcp.json<\/code> in the repo<\/td><td>Anyone who clones the repo<\/td><\/tr>\n<\/tbody><\/table><\/figure>\n\n\n<p>Here is the catch. A plain <code>claude mcp add<\/code> with no scope writes to <code>local<\/code>, which lands in <code>~\/.claude.json<\/code>, not in a <code>.mcp.json<\/code> file. If you expected a committable config and got nothing in your repo, that is why. Pass <code>--scope project<\/code> (or <code>-s project<\/code>) whenever you want the server shared. Both adds above used it, so the repo now carries this:<\/p>\n\n\n<pre class=\"wp-block-code code\"><code>{\n  \"mcpServers\": {\n    \"filesystem\": {\n      \"type\": \"stdio\",\n      \"command\": \"npx\",\n      \"args\": [\"-y\", \"@modelcontextprotocol\/server-filesystem\", \"~\/projects\"],\n      \"env\": {}\n    },\n    \"sentry\": {\n      \"type\": \"http\",\n      \"url\": \"https:\/\/mcp.sentry.dev\/mcp\"\n    }\n  }\n}<\/code><\/pre>\n\n\n<p>When the same server name exists in more than one scope, precedence runs <code>local<\/code> over <code>project<\/code> over <code>user<\/code>. So a personal <code>local<\/code> override beats the shared repo copy, which is handy when you want to point one server at a different endpoint without editing the committed file. The screenshot below shows both adds and the file they produced:<\/p>\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1920\" height=\"1580\" src=\"https:\/\/computingforgeeks.com\/wp-content\/uploads\/2026\/06\/wm-claude-code-mcp-add-server-config.png\" alt=\"Adding stdio and HTTP MCP servers to Claude Code and the generated .mcp.json\" class=\"wp-image-168490\" title=\"\" srcset=\"https:\/\/computingforgeeks.com\/wp-content\/uploads\/2026\/06\/wm-claude-code-mcp-add-server-config.png 1920w, https:\/\/computingforgeeks.com\/wp-content\/uploads\/2026\/06\/wm-claude-code-mcp-add-server-config-300x247.png 300w, https:\/\/computingforgeeks.com\/wp-content\/uploads\/2026\/06\/wm-claude-code-mcp-add-server-config-1024x843.png 1024w, https:\/\/computingforgeeks.com\/wp-content\/uploads\/2026\/06\/wm-claude-code-mcp-add-server-config-768x632.png 768w, https:\/\/computingforgeeks.com\/wp-content\/uploads\/2026\/06\/wm-claude-code-mcp-add-server-config-1536x1264.png 1536w\" sizes=\"auto, (max-width: 1920px) 100vw, 1920px\" \/><\/figure>\n\n\n<p>Commit that <code>.mcp.json<\/code> and every teammate gets the same servers, sitting right next to the rest of your <a href=\"https:\/\/computingforgeeks.com\/claude-code-dot-claude-directory-guide\/\">project Claude Code config<\/a>. There is one safety gate worth knowing: the first time anyone uses a project-scoped server they are prompted to approve it, and until they do it shows as pending approval and stays disconnected. That stops a malicious repo from running a server on your machine the moment you clone it. If you approve by accident or want the prompt back, reset the choices:<\/p>\n\n\n<pre class=\"wp-block-code code\"><code>claude mcp reset-project-choices<\/code><\/pre>\n\n\n<p>With the wiring understood, the next part is credentials.<\/p>\n\n<h2>Pass tokens and environment variables<\/h2>\n\n<p>Real servers need secrets: a GitHub token, a database URL, an API key. Two flags carry them, <code>-e<\/code> for environment variables and <code>-H<\/code> (or <code>--header<\/code>) for HTTP headers. Both are variadic, meaning they swallow every value that follows. So they must come <strong>after<\/strong> the name and URL, never before.<\/p>\n\n<p>Put a flag like <code>--header<\/code> ahead of the name and the parser eats the name, leaving you with <code>error: missing required argument 'name'<\/code>. The order that works for a token-protected HTTP server:<\/p>\n\n\n<pre class=\"wp-block-code code\"><code>claude mcp add --scope project --transport http github https:\/\/api.githubcopilot.com\/mcp\/ --header \"Authorization: Bearer YOUR_GITHUB_PAT\"<\/code><\/pre>\n\n\n<p>Name and URL first, header last. The confirmation redacts the secret so it never lands in your scrollback, and it trims the trailing slash from the echoed URL even though the stored <code>.mcp.json<\/code> keeps it:<\/p>\n\n\n<pre class=\"wp-block-code code\"><code>Added HTTP MCP server github with URL: https:\/\/api.githubcopilot.com\/mcp\nHeaders: {\n  \"Authorization\": \"[REDACTED]\"\n}<\/code><\/pre>\n\n\n<p>For a stdio server that reads its config from the environment, the same rule holds. The <code>-e<\/code> pairs go after the name, before the <code>--<\/code>:<\/p>\n\n\n<pre class=\"wp-block-code code\"><code>claude mcp add postgres -e DATABASE_URL=postgresql:\/\/localhost\/mydb -- npx -y @modelcontextprotocol\/server-postgres<\/code><\/pre>\n\n\n<p>Hardcoding secrets into a shared <code>.mcp.json<\/code> is a bad idea, so the config supports expansion. Reference an environment variable with <code>${VAR}<\/code>, and fall back to a default with <code>${VAR:-default}<\/code>. Expansion works in <code>command<\/code>, <code>args<\/code>, <code>env<\/code>, <code>url<\/code>, and <code>headers<\/code>:<\/p>\n\n\n<pre class=\"wp-block-code code\"><code>{\n  \"mcpServers\": {\n    \"github\": {\n      \"type\": \"http\",\n      \"url\": \"https:\/\/api.githubcopilot.com\/mcp\/\",\n      \"headers\": { \"Authorization\": \"Bearer ${GITHUB_PAT}\" }\n    }\n  }\n}<\/code><\/pre>\n\n\n<p>Now the repo carries the shape and each developer supplies their own <code>GITHUB_PAT<\/code>.<\/p>\n\n<h2>Check and manage your servers<\/h2>\n\n<p>One command lists everything across all scopes and health-checks each one as it goes:<\/p>\n\n\n<pre class=\"wp-block-code code\"><code>claude mcp list<\/code><\/pre>\n\n\n<p>Connected servers show a check, ones still waiting on sign-in say so plainly:<\/p>\n\n\n<pre class=\"wp-block-code code\"><code>Checking MCP server health...\n\ngithub: https:\/\/api.githubcopilot.com\/mcp\/ (HTTP) - \u2713 Connected\nplaywright: npx -y @playwright\/mcp - \u2713 Connected\nfilesystem: npx -y @modelcontextprotocol\/server-filesystem ~\/projects - \u2713 Connected\nsentry: https:\/\/mcp.sentry.dev\/mcp (HTTP) - ! Needs authentication<\/code><\/pre>\n\n\n<p>For one server&#8217;s details, including its scope and status, use <code>get<\/code>:<\/p>\n\n\n<pre class=\"wp-block-code code\"><code>claude mcp get sentry<\/code><\/pre>\n\n\n<p>That same status view appears when you run the list command, shown here against a live set of servers:<\/p>\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1920\" height=\"1022\" src=\"https:\/\/computingforgeeks.com\/wp-content\/uploads\/2026\/06\/wm-claude-code-mcp-list-server-status.png\" alt=\"claude mcp list output showing connected MCP servers and one needing authentication\" class=\"wp-image-168491\" title=\"\" srcset=\"https:\/\/computingforgeeks.com\/wp-content\/uploads\/2026\/06\/wm-claude-code-mcp-list-server-status.png 1920w, https:\/\/computingforgeeks.com\/wp-content\/uploads\/2026\/06\/wm-claude-code-mcp-list-server-status-300x160.png 300w, https:\/\/computingforgeeks.com\/wp-content\/uploads\/2026\/06\/wm-claude-code-mcp-list-server-status-1024x545.png 1024w, https:\/\/computingforgeeks.com\/wp-content\/uploads\/2026\/06\/wm-claude-code-mcp-list-server-status-768x409.png 768w, https:\/\/computingforgeeks.com\/wp-content\/uploads\/2026\/06\/wm-claude-code-mcp-list-server-status-1536x818.png 1536w\" sizes=\"auto, (max-width: 1920px) 100vw, 1920px\" \/><\/figure>\n\n\n<p>A server that says it needs authentication is waiting on you. Open the panel from inside a session:<\/p>\n\n\n<pre class=\"wp-block-code code\"><code>\/mcp<\/code><\/pre>\n\n\n<p>The panel lists every server, the tools each one exposes, and an Authenticate option for the ones that need it. Pick the server, sign in through the browser window it opens, and Claude reconnects on its own. To drop a server, name it and the scope it lives in:<\/p>\n\n\n<pre class=\"wp-block-code code\"><code>claude mcp remove sentry -s project<\/code><\/pre>\n\n\n<p>The server leaves the shared config and the file updates in place.<\/p>\n\n<h2>Use the tools Claude just gained<\/h2>\n\n<p>Connecting a server is half the job. Most guides stop at the green check, but a connected server gives you three concrete handles inside a session, and they are where the real speedup lives.<\/p>\n\n<p>That same <code>\/mcp<\/code> panel lists the exact tools each server exposes, so you can see what Claude can now call. Many servers also ship <em>prompts<\/em>, which surface as slash commands named after the server. Type <code>\/<\/code> and they show up alongside the built-ins:<\/p>\n\n\n<pre class=\"wp-block-code code\"><code>\/mcp__github__list_prs\n\/mcp__jira__create_issue \"Bug in login flow\" high<\/code><\/pre>\n\n\n<p>Servers can also expose <em>resources<\/em>, which you pull into a prompt with an <code>@<\/code> mention the same way you reference a file. The format is <code>@server:protocol:\/\/resource\/path<\/code>:<\/p>\n\n\n<pre class=\"wp-block-code code\"><code>Can you analyze @github:issue:\/\/123 and suggest a fix?<\/code><\/pre>\n\n\n<p>The last handle is permissions. By default Claude asks before each new MCP tool call, which gets old fast for a server you trust. MCP tools are named <code>mcp__&lt;server&gt;__&lt;tool&gt;<\/code>, and you pre-approve a whole server by naming it bare. Drop this into <code>.claude\/settings.json<\/code> and the GitHub server&#8217;s tools run without a prompt:<\/p>\n\n\n<pre class=\"wp-block-code code\"><code>{\n  \"permissions\": {\n    \"allow\": [\"mcp__github\"]\n  }\n}<\/code><\/pre>\n\n\n<p>The wildcard form <code>mcp__github__*<\/code> does the same thing, and <code>mcp__github__get_*<\/code> narrows it to just the read tools. For a one-off session, pass <code>--allowedTools \"mcp__github\"<\/code> on launch instead of editing settings. One more direction worth knowing: Claude Code can run <em>as<\/em> a server itself with <code>claude mcp serve<\/code>, exposing its own tools to another MCP client like Claude Desktop or an IDE. Niche, but it is how you slot Claude Code into a larger multi-agent setup.<\/p>\n\n<h2>Best MCP servers to start with<\/h2>\n\n<p>You do not need a dozen. A handful of well-chosen servers covers most real work, and each one you add ships more tool definitions into the context window. Start here:<\/p>\n\n\n<figure class=\"wp-block-table\"><table><thead><tr><th>Server<\/th><th>What it adds<\/th><th>Transport<\/th><\/tr><\/thead><tbody>\n<tr><td>GitHub<\/td><td>Issues, pull requests, code search, reviews<\/td><td>HTTP (hosted)<\/td><\/tr>\n<tr><td>Playwright<\/td><td>Drives a real browser for testing and scraping<\/td><td>stdio<\/td><\/tr>\n<tr><td>Context7<\/td><td>Version-pinned docs for thousands of libraries<\/td><td>stdio<\/td><\/tr>\n<tr><td>Postgres or SQLite<\/td><td>Query and inspect your database directly<\/td><td>stdio<\/td><\/tr>\n<tr><td>Sentry<\/td><td>Pulls live errors and traces into the session<\/td><td>HTTP (hosted)<\/td><\/tr>\n<tr><td>Sequential Thinking<\/td><td>Structured, step-by-step reasoning<\/td><td>stdio<\/td><\/tr>\n<\/tbody><\/table><\/figure>\n\n\n<p>Three to six is plenty. Past that, the tool list grows, startup slows, and you spend context you could give the actual task. If your sessions feel heavy, the same discipline that <a href=\"https:\/\/computingforgeeks.com\/reduce-claude-code-token-usage-tools\/\">keeps token usage down<\/a> applies here: trim servers you are not using. The GitHub and database servers alone change how much <a href=\"https:\/\/computingforgeeks.com\/claude-code-devops-engineers\/\">Claude Code handles for DevOps work<\/a>, from triaging issues to reading production schemas.<\/p>\n\n<h2>Troubleshooting the common failures<\/h2>\n\n<p>These are the four that actually send people looking for answers, with the fix for each.<\/p>\n\n<p><strong>The add command says <code>error: missing required argument 'name'<\/code>.<\/strong> A variadic flag like <code>--header<\/code> or <code>-e<\/code> ran ahead of the server name and ate it. Move every flag after the name and URL, and put the stdio command after <code>--<\/code>.<\/p>\n\n<p><strong>A project server is stuck on pending approval.<\/strong> This trips people up the first time they clone a repo with a <code>.mcp.json<\/code>. Servers from that file are disabled until you approve them, by design. Run <code>\/mcp<\/code> inside a session to approve, or <code>claude mcp reset-project-choices<\/code> if you need the prompt back.<\/p>\n\n<p><strong>A server times out while starting.<\/strong> Slow stdio servers (a cold <code>npx<\/code> download, a heavy runtime) can blow the startup window. Raise it for the session, or pin a per-server limit in <code>.mcp.json<\/code>:<\/p>\n\n\n<pre class=\"wp-block-code code\"><code>MCP_TIMEOUT=15000 claude<\/code><\/pre>\n\n\n<p>For a per-server cap, add a <code>\"timeout\"<\/code> field in milliseconds to that server&#8217;s entry, which overrides the global <code>MCP_TOOL_TIMEOUT<\/code> for that one server.<\/p>\n\n<p><strong>Claude warns that MCP tool output exceeds 10,000 tokens.<\/strong> That is the warning line; the hard cap defaults to 25,000 tokens, and a chatty server (a wide database query, a giant API response) burns context you wanted for the task. Raise the ceiling when you genuinely need the data:<\/p>\n\n\n<pre class=\"wp-block-code code\"><code>MAX_MCP_OUTPUT_TOKENS=50000 claude<\/code><\/pre>\n\n\n<p>The gotcha here is that more output is rarely the real fix. Trimming a noisy server or narrowing the query usually beats raising the cap. When you are properly stuck, launch with <code>claude --debug<\/code> and it prints the underlying MCP server errors instead of a quiet failure.<\/p>\n\n<h2>MCP command cheat sheet<\/h2>\n\n<p>Everything you need to run, in one place:<\/p>\n\n\n<figure class=\"wp-block-table\"><table><thead><tr><th>Task<\/th><th>Command<\/th><\/tr><\/thead><tbody>\n<tr><td>Add stdio server<\/td><td><code>claude mcp add -s project NAME -- CMD ARGS<\/code><\/td><\/tr>\n<tr><td>Add HTTP server<\/td><td><code>claude mcp add -s project -t http NAME URL<\/code><\/td><\/tr>\n<tr><td>Add with token<\/td><td><code>claude mcp add ... NAME URL --header \"Authorization: Bearer TOKEN\"<\/code><\/td><\/tr>\n<tr><td>List and health-check<\/td><td><code>claude mcp list<\/code><\/td><\/tr>\n<tr><td>Inspect one server<\/td><td><code>claude mcp get NAME<\/code><\/td><\/tr>\n<tr><td>Remove a server<\/td><td><code>claude mcp remove NAME -s project<\/code><\/td><\/tr>\n<tr><td>Authenticate or reconnect<\/td><td><code>\/mcp<\/code> (inside a session)<\/td><\/tr>\n<tr><td>Run a server prompt<\/td><td><code>\/mcp__SERVER__PROMPT args<\/code><\/td><\/tr>\n<tr><td>Allow a server&#8217;s tools<\/td><td><code>--allowedTools \"mcp__SERVER\"<\/code> or <code>permissions.allow<\/code><\/td><\/tr>\n<tr><td>Raise output cap<\/td><td><code>MAX_MCP_OUTPUT_TOKENS=50000 claude<\/code><\/td><\/tr>\n<\/tbody><\/table><\/figure>\n\n\n<p>Pin this next to your <a href=\"https:\/\/computingforgeeks.com\/claude-code-cheat-sheet\/\">Claude Code cheat sheet<\/a> and you have the whole MCP surface covered. Add the servers your stack actually uses, commit the <code>.mcp.json<\/code>, and the next clone is wired up on first run.<\/p>","protected":false},"excerpt":{"rendered":"<p>Claude Code is sharp on its own. Point it at MCP servers and it can read your database, drive a browser, open GitHub issues, and pull current library docs without you pasting anything into the prompt. The model gains tools, and it uses them on its own. This is a complete Claude Code MCP setup. &#8230; <a title=\"Connect Claude Code to MCP Servers (Setup and Best Servers)\" class=\"read-more\" href=\"https:\/\/computingforgeeks.com\/claude-code-mcp-servers-setup\/\" aria-label=\"Read more about Connect Claude Code to MCP Servers (Setup and Best Servers)\">Read more<\/a><\/p>\n","protected":false},"author":27,"featured_media":168492,"comment_status":"open","ping_status":"","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[39034,690,299],"tags":[17245,212,669,211],"cfg_series":[39880],"class_list":["post-168493","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-ai","category-dev","category-how-to","tag-ai","tag-automation","tag-dev","tag-devops","cfg_series-claude-code-mastery"],"_links":{"self":[{"href":"https:\/\/computingforgeeks.com\/wp-json\/wp\/v2\/posts\/168493","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/computingforgeeks.com\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/computingforgeeks.com\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/computingforgeeks.com\/wp-json\/wp\/v2\/users\/27"}],"replies":[{"embeddable":true,"href":"https:\/\/computingforgeeks.com\/wp-json\/wp\/v2\/comments?post=168493"}],"version-history":[{"count":3,"href":"https:\/\/computingforgeeks.com\/wp-json\/wp\/v2\/posts\/168493\/revisions"}],"predecessor-version":[{"id":168685,"href":"https:\/\/computingforgeeks.com\/wp-json\/wp\/v2\/posts\/168493\/revisions\/168685"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/computingforgeeks.com\/wp-json\/wp\/v2\/media\/168492"}],"wp:attachment":[{"href":"https:\/\/computingforgeeks.com\/wp-json\/wp\/v2\/media?parent=168493"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/computingforgeeks.com\/wp-json\/wp\/v2\/categories?post=168493"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/computingforgeeks.com\/wp-json\/wp\/v2\/tags?post=168493"},{"taxonomy":"cfg_series","embeddable":true,"href":"https:\/\/computingforgeeks.com\/wp-json\/wp\/v2\/cfg_series?post=168493"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}