Skip to content
verify mcp Beta VerifyMCP is currently in beta. If you notice any issues, get in touch and we’ll put it right.

Carbon Forge

REMOTE · CARBONFORGE.DEV · 2 COMPONENTS

One record of code, files and pages that people and agents read and write, with lanes and git.

+3 this week 72 Trust /100

Last scanned (18 hours ago)

Scores higher than 58% of remote servers

Reachable. Last reached 4 Nov 2026.

Category Documents and Files

Trust breakdown (7 categories)

How this component scores in each security and reliability category. Every signal is checked automatically against the live server, and we only credit what we can confirm. How we score → Why this is hard to score →

Endpoint Security69
Transport & Reachability100
Schema Quality & AI Usability70
  • 100% of prompts and resources have a non-trivial description (not blank, and not just the item's name).Pass
  • AI-judged instruction clarity (good).Pass
  • Context-footprint check failed: tool/resource definitions use about 4913 tokens (~223/item across 22 items; 22 tools + 0 resources), over budget; trim descriptions and params. See how to fix → Fail
  • Usage-examples check failed: none of the tools include examples. See how to fix → Fail
Stability & Change Management37
  • Stability observed for 11 of 30 days with no destabilising changes; credit accrues until the full window elapses.Partial
Tool Coverage84
  • 100% of tools have a non-trivial description (not blank, and not just the tool's name).Pass
  • 51% of tool parameters carry a description.Partial
Tool Safety100
  • No prompt-injection markers were found in the server instructions, tool names or descriptions we captured.Pass
  • We read all 22 captured tool definition(s), and no name or description among them implies an irreversible operation.Pass
  • An AI judge read all 22 captured unit(s) of tool text and found none that tries to manipulate the model reading it.Pass
Capabilities100
  • Implements a supported MCP spec version (2025-11-25); the latest is 2026-07-28.Pass
Changelog

Every change we have recorded for this component, newest first. Security-relevant changes are always shown. ▲ marks a change for the better, ▼ a change for the worse; unmarked changes are neutral.

  • 3 Nov 26 +1

    No change was recorded against any check on this day. Stability & Change Management went from 30 to 33. That category is still filling its 30-day observation window: 9 days of observed history at the previous scan, 10 at this one. The score rises as the window fills, whether or not the server changes.

  • 1 Nov 26 +1

    No change was recorded against any check on this day. Stability & Change Management went from 23 to 27. That category is still filling its 30-day observation window: 7 days of observed history at the previous scan, 8 at this one. The score rises as the window fills, whether or not the server changes.

  • 30 Oct 26 +1
    • Server version: d0a1326dfb4e7c7988e1658873c33207645716c9 → ed5376e08c3d569b0fc53e2ea9ff1e9f04d7fa22 functional
  • 29 Oct 26 0
    • Server version: bb9acf10c32d7d8d94b2f90ed00b0d4b97167220 → d0a1326dfb4e7c7988e1658873c33207645716c9 functional
  • 28 Oct 26 +1

    No change was recorded against any check on this day. Stability & Change Management went from 10 to 13. That category is still filling its 30-day observation window: 3 days of observed history at the previous scan, 4 at this one. The score rises as the window fills, whether or not the server changes.

  • 26 Oct 26 +1

    No change was recorded against any check on this day. Stability & Change Management went from 3 to 7. That category is still filling its 30-day observation window: 1 days of observed history at the previous scan, 2 at this one. The score rises as the window fills, whether or not the server changes.

  • 25 Oct 26 0
    • Stability: unverified → 0.03 ▲ functional
  • 24 Oct 26 67

    First indexed and scored.

Diagnostics

Diagnostic detail from the automated scan of this channel: what the scanner observed at each step, so you can see exactly where a check passed or failed. It is informational only and never changes the trust score.

Captured 4 Nov 2026 · Probed https://carbonforge.dev/api/mcp

TLS valid

Negotiated TLS 1.3 with TLS_AES_128_GCM_SHA256 .

Subject Issuer Valid from Valid until Key Signature Serial
CN=carbonforge.dev CN=YE2,O=Let's Encrypt,C=US 14 Oct 2026 12 Jan 2027 ECDSA 256 ECDSA-SHA384 5b85ee98b935c909fdc4952d1bd0aaca387
SANs: *.carbonforge.dev, carbonforge.dev
CN=YE2,O=Let's Encrypt,C=US (CA) CN=Root YE,O=ISRG,C=US 3 Sept 2025 2 Sept 2028 ECDSA 384 ECDSA-SHA384 4df3b15dd6c0784c507cd37b58e6f115
CN=Root YE,O=ISRG,C=US (CA) CN=ISRG Root X2,O=Internet Security Research Group,C=US 13 May 2026 2 Sept 2032 ECDSA 384 ECDSA-SHA384 872165fc34b6e5fba8add5b3705fb53a
CN=ISRG Root X2,O=Internet Security Research Group,C=US (CA) CN=ISRG Root X1,O=Internet Security Research Group,C=US 13 May 2026 2 Sept 2032 ECDSA 384 SHA256-RSA 6c8f1dc727c7117f7baf853ac980f9cd

Background: What to check on a remote MCP endpoint →

DNSSEC insecure

Validation of carbonforge.dev. — Not signed

Zone DS Keys Algorithms Outcome
. trust_anchor 20326, 38696 8, 8 Verified
dev. present 60074 8 Verified
carbonforge.dev. absent Unsigned (proven) parent-signed NSEC/NSEC3 proves an unsigned delegation
Authentication No authorisation required

The endpoint answered without asking for a token. Anyone who knows the URL can reach it.

Result No authorisation required
HTTP status 200
Header Value
strict-transport-security max-age=31536000; includeSubDomains
content-security-policy default-src 'self'; script-src 'self' 'nonce-Q9ZgPrVAlcH/LpgXD6UJFQ==' https://static.cloudflareinsights.com https://www.googletagmanager.com; style-src 'self' 'unsafe-inline'; img-src 'self' data: blob: https://*.google-analytics.com https://*.googletagmanager.com; connect-src 'self' https://cloudflareinsights.com https://*.google-analytics.com https://*.analytics.google.com https://*.googletagmanager.com; font-src 'self'; frame-src 'self' https://www.youtube.com https://player.vimeo.com https://www.loom.com https://open.spotify.com; frame-ancestors 'none'; base-uri 'self'; form-action 'self'; object-src 'none'
x-content-type-options nosniff
x-frame-options DENY
referrer-policy strict-origin-when-cross-origin
permissions-policy camera=(), microphone=(), geolocation=(), payment=()

Background: How OAuth 2.1 works in the 2026 MCP spec →

Transports 2 probes
Transport URL Outcome Status Location
streamable-http https://carbonforge.dev/api/mcp Verified 200
http (plaintext) http://carbonforge.dev/api/mcp Inconclusive 405
MCP tools · 22 exposed · ~4,913 tokens

The tools this component advertises to a client, with an estimated token cost for each. Expand a tool to see its parameters and schema. The per-tool counts are indicative and are not scored directly; the schema's total context footprint is one signal in Schema Quality & AI Usability. A tool's description is untrusted text the model reads on every call, which is what makes this list a security surface and not just an inventory: how tool poisoning works →

Tool Tokens
atoms.list ~313

List atoms in the current workspace. The `path_prefix`, `body_contains`, `metadata`, `sort`, `direction` and `include_metadata` arguments mirror the same arguments on pages.list.

NameTypeReqDescription
body_containsstring––
cursorstring––
directionstring–Direction for `sort`. Ascending by default.
include_metadataboolean–Carry each entry's metadata object in the response. Off by default, because a metadata bag can be large and a listing is a scan surface.
instancestring–Instance (slug or UUID) to resolve a `workspace` slug within. Only meaningful for apex tokens, which have no home instance; instance-locked tokens always resolve within their own.
limitinteger––
metadataobject–Keep only entries whose metadata contains every one of these keys with an equal value; a second key narrows the result. Values are strings, numbers or booleans, and the match is against top-level key…
path_prefixstring––
sortstring–Order the listing by path (the default), last update, or creation time.
workspacestring–Workspace (slug or UUID) this call acts in. Overrides the per-token current-workspace pointer for this call only — read-only, it never moves the pointer. Omit to use the pointer set by `me.set_curren…

No output schema declared.

No examples provided.

atoms.read ~454

Read an atom by path or UUID with usage_pages projection. Returns metadata. Pass `section` with a heading's plain text to get back only that heading and the blocks under it, down to the next heading at the same or shallower level; the result then also carries `section: { heading, level, matches }`, and everything else on it is the atom's own, so a section can be read and written straight back.

NameTypeReqDescription
instancestring–Instance (slug or UUID) to resolve a `workspace` slug within. Only meaningful for apex tokens, which have no home instance; instance-locked tokens always resolve within their own.
lanestring–A lane's label. On a write, the patch is stored on the lane, validated against the lane's view, and the trunk is not written. On a read, the body is the trunk's current body with the lane's patches a…
pathOrIdstringyesEither the path of the page/atom (e.g. "guides/foo" — no leading slash, lowercase, slash-separated) or the UUID. Paths and UUIDs both resolve inside the workspace this call resolved to: the `workspac…
sectionstring–A heading's plain text (case-insensitive, whitespace-trimmed). When given, the body returned is that heading and every block down to the next heading at the same or shallower level, instead of the wh…
workspacestring–Workspace (slug or UUID) this call acts in. Overrides the per-token current-workspace pointer for this call only — read-only, it never moves the pointer. Omit to use the pointer set by `me.set_curren…

No output schema declared.

No examples provided.

comments.list ~193

List the comment thread for a page or atom.

NameTypeReqDescription
instancestring–Instance (slug or UUID) to resolve a `workspace` slug within. Only meaningful for apex tokens, which have no home instance; instance-locked tokens always resolve within their own.
target_kindstringyes–
target_pathOrIdstringyesEither the path of the page/atom (e.g. "guides/foo" — no leading slash, lowercase, slash-separated) or the UUID. Paths and UUIDs both resolve inside the workspace this call resolved to: the `workspac…
workspacestring–Workspace (slug or UUID) this call acts in. Overrides the per-token current-workspace pointer for this call only — read-only, it never moves the pointer. Omit to use the pointer set by `me.set_curren…

No output schema declared.

No examples provided.

cortex.ground ~211

Orientation surface: instance metadata, both grounding documents, identity and capabilities, reachable workspaces, sidecar health. Pass `workspace` to ground a named workspace without moving the per-token pointer. Pass a `known_grounding_at` / `known_workspace_grounding_at` you hold and an unchanged document is acknowledged, not resent. Details: https://carbonforge.dev/docs/p/api/mcp-tools-catalog

NameTypeReqDescription
instancestring––
known_grounding_atstring–ISO-8601 timestamp of the instance grounding document you already hold; when it equals the stored document exactly, the reply acknowledges it as unchanged instead of resending the body, and any other…
known_workspace_grounding_atstring–ISO-8601 timestamp of the resolved workspace grounding document you already hold; when it equals the stored document exactly, the reply acknowledges it as unchanged instead of resending the body, and…
workspacestring––

No output schema declared.

No examples provided.

discovery.list_entities ~242

Browse pages or atoms inside a workspace with faceted filters (tag, author, date range, visibility, metadata containment) and sort by alphabetical, recency, or star count. Viewer-aware: members see everything, anonymous callers see only public entities in public workspaces. 50 items per page, cursor-based. Details: https://carbonforge.dev/docs/p/api/mcp-tools-catalog

NameTypeReqDescription
cursorstring––
filtersobject––
instancestring–Instance (slug or UUID) to resolve a `workspace` slug within. Only meaningful for apex tokens, which have no home instance; instance-locked tokens always resolve within their own.
kindstringyes–
limitinteger––
qstring––
sortstring––
workspacestring–Workspace (slug or UUID) this call acts in. Overrides the per-token current-workspace pointer for this call only — read-only, it never moves the pointer. Omit to use the pointer set by `me.set_curren…
workspace_idstring––
workspace_slugstring––

No output schema declared.

No examples provided.

discovery.list_instances ~116

List instances. Filter: all (default) | public | my | my_admin. public lists an instance that has public reading on, is listed in Discover, is not frozen, and has a workspace that is not private holding a page that is not private. my and my_admin list the caller's own instances (member; admin) with no such gate; all is public plus my. Without a token every filter is public.

NameTypeReqDescription
filterstring––
limitinteger––
querystring––

No output schema declared.

No examples provided.

discovery.list_workspaces ~121

List workspaces across one or all instances, with the same filters. public lists a workspace when its instance has public reading on, the workspace is not private, its instance is listed in Discover and not frozen, and it holds a page that is not private. my and my_admin list the caller's own workspaces with no such gate; all is public plus my. Without a token every filter is public.

NameTypeReqDescription
filterstring––
instance_idstring––
limitinteger––
querystring––

No output schema declared.

No examples provided.

discovery.search ~52

Search instance and workspace metadata + grounding documents. Returns parallel lists for both scopes.

NameTypeReqDescription
filterstring––
limitinteger––
qstringyes–
scopestring––

No output schema declared.

No examples provided.

files.list ~351

Browse the workspace as a file tree, one level at a time: directories, pages, atoms, code trees (expanded at their paths) and library entries. Each node names its kind, entity, current revision and digest; `at` holds the entities exactly at `path`. `surface` keeps that surface only. History: files.history. Anonymous callers see public pages and atoms, and code trees of surface code.

NameTypeReqDescription
instancestring–Instance (slug or UUID) to resolve a `workspace` slug within. Only meaningful for apex tokens, which have no home instance; instance-locked tokens always resolve within their own.
lanestring–A lane label. When given, every node carries `lane: { patched, conflict }` against that lane; a directory is marked when anything below it is. Members only.
limitinteger–Nodes per page, default 100.
offsetinteger––
pathstring–A path in the workspace, e.g. "repos/pilot/bin": case kept, slash-separated, no leading slash. Omit or pass "" for the root.
perspectivestring–Only what this perspective holds (perspectives.list), at paths with its root stripped; an anonymous caller sees its public part. Not with surface.
surfacestring–Only entities whose metadata's surface is this one (a tree's files go with their tree).
workspacestring–Workspace (slug or UUID) this call acts in. Overrides the per-token current-workspace pointer for this call only — read-only, it never moves the pointer. Omit to use the pointer set by `me.set_curren…

No output schema declared.

No examples provided.

kg.get_related ~197

Semantic nearest-neighbors via similarity_edges.

NameTypeReqDescription
instancestring–Instance (slug or UUID) to resolve a `workspace` slug within. Only meaningful for apex tokens, which have no home instance; instance-locked tokens always resolve within their own.
kindstringyes–
limitinteger––
pathOrIdstringyesEither the path of the page/atom (e.g. "guides/foo" — no leading slash, lowercase, slash-separated) or the UUID. Paths and UUIDs both resolve inside the workspace this call resolved to: the `workspac…
workspacestring–Workspace (slug or UUID) this call acts in. Overrides the per-token current-workspace pointer for this call only — read-only, it never moves the pointer. Omit to use the pointer set by `me.set_curren…

No output schema declared.

No examples provided.

kg.list_cross_links ~195

List incoming + outgoing cross-links for a page or atom.

NameTypeReqDescription
instancestring–Instance (slug or UUID) to resolve a `workspace` slug within. Only meaningful for apex tokens, which have no home instance; instance-locked tokens always resolve within their own.
kindstringyes–
pathOrIdstringyesEither the path of the page/atom (e.g. "guides/foo" — no leading slash, lowercase, slash-separated) or the UUID. Paths and UUIDs both resolve inside the workspace this call resolved to: the `workspac…
workspacestring–Workspace (slug or UUID) this call acts in. Overrides the per-token current-workspace pointer for this call only — read-only, it never moves the pointer. Omit to use the pointer set by `me.set_curren…

No output schema declared.

No examples provided.

media.read ~120

Fetch metadata for a single media item.

NameTypeReqDescription
instancestring–Instance (slug or UUID) to resolve a `workspace` slug within. Only meaningful for apex tokens, which have no home instance; instance-locked tokens always resolve within their own.
media_idstringyes–
workspacestring–Workspace (slug or UUID) this call acts in. Overrides the per-token current-workspace pointer for this call only — read-only, it never moves the pointer. Omit to use the pointer set by `me.set_curren…

No output schema declared.

No examples provided.

pages.list ~364

List pages in a workspace. `path_prefix` narrows by leading segment; `body_contains` keeps pages whose Markdown holds a literal substring; `metadata` keeps pages whose top-level metadata contains the given scalar keys; `sort` (path | updated_at | created_at) and `direction` order the set; `include_metadata` adds each page's metadata. Details: https://carbonforge.dev/docs/p/api/mcp-tools-catalog

NameTypeReqDescription
body_containsstring––
cursorstring––
directionstring–Direction for `sort`. Ascending by default.
include_metadataboolean–Carry each entry's metadata object in the response. Off by default, because a metadata bag can be large and a listing is a scan surface.
instancestring–Instance (slug or UUID) to resolve a `workspace` slug within. Only meaningful for apex tokens, which have no home instance; instance-locked tokens always resolve within their own.
limitinteger––
metadataobject–Keep only entries whose metadata contains every one of these keys with an equal value; a second key narrows the result. Values are strings, numbers or booleans, and the match is against top-level key…
path_prefixstring––
sortstring–Order the listing by path (the default), last update, or creation time.
workspacestring–Workspace (slug or UUID) this call acts in. Overrides the per-token current-workspace pointer for this call only — read-only, it never moves the pointer. Omit to use the pointer set by `me.set_curren…

No output schema declared.

No examples provided.

pages.read ~451

Read a page by path or UUID. Returns the Markdown body plus the page metadata object. Pass `section` with a heading's plain text to get back only that heading and the blocks under it, down to the next heading at the same or shallower level; the result then also carries `section: { heading, level, matches }`. Details: https://carbonforge.dev/docs/p/api/mcp-tools-catalog

NameTypeReqDescription
instancestring–Instance (slug or UUID) to resolve a `workspace` slug within. Only meaningful for apex tokens, which have no home instance; instance-locked tokens always resolve within their own.
lanestring–A lane's label. On a write, the patch is stored on the lane, validated against the lane's view, and the trunk is not written. On a read, the body is the trunk's current body with the lane's patches a…
pathOrIdstringyesEither the path of the page/atom (e.g. "guides/foo" — no leading slash, lowercase, slash-separated) or the UUID. Paths and UUIDs both resolve inside the workspace this call resolved to: the `workspac…
sectionstring–A heading's plain text (case-insensitive, whitespace-trimmed). When given, the body returned is that heading and every block down to the next heading at the same or shallower level, instead of the wh…
workspacestring–Workspace (slug or UUID) this call acts in. Overrides the per-token current-workspace pointer for this call only — read-only, it never moves the pointer. Omit to use the pointer set by `me.set_curren…

No output schema declared.

No examples provided.

revisions.compare ~228

Markdown-level diff between two revisions of the same page or atom. Returns segments (op: equal | insert | delete) plus both Markdown projections.

NameTypeReqDescription
instancestring–Instance (slug or UUID) to resolve a `workspace` slug within. Only meaningful for apex tokens, which have no home instance; instance-locked tokens always resolve within their own.
kindstringyes–
pathOrIdstringyesEither the path of the page/atom (e.g. "guides/foo" — no leading slash, lowercase, slash-separated) or the UUID. Paths and UUIDs both resolve inside the workspace this call resolved to: the `workspac…
revision_a_idintegeryes–
revision_b_idintegeryes–
workspacestring–Workspace (slug or UUID) this call acts in. Overrides the per-token current-workspace pointer for this call only — read-only, it never moves the pointer. Omit to use the pointer set by `me.set_curren…

No output schema declared.

No examples provided.

revisions.get ~198

Fetch a specific revision (returns Markdown body).

NameTypeReqDescription
instancestring–Instance (slug or UUID) to resolve a `workspace` slug within. Only meaningful for apex tokens, which have no home instance; instance-locked tokens always resolve within their own.
kindstringyes–
pathOrIdstringyesEither the path of the page/atom (e.g. "guides/foo" — no leading slash, lowercase, slash-separated) or the UUID. Paths and UUIDs both resolve inside the workspace this call resolved to: the `workspac…
revision_idintegeryes–
workspacestring–Workspace (slug or UUID) this call acts in. Overrides the per-token current-workspace pointer for this call only — read-only, it never moves the pointer. Omit to use the pointer set by `me.set_curren…

No output schema declared.

No examples provided.

revisions.list ~208

List revisions for a page or atom (cursor-paginated).

NameTypeReqDescription
cursorstring––
instancestring–Instance (slug or UUID) to resolve a `workspace` slug within. Only meaningful for apex tokens, which have no home instance; instance-locked tokens always resolve within their own.
kindstringyes–
limitinteger––
pathOrIdstringyesEither the path of the page/atom (e.g. "guides/foo" — no leading slash, lowercase, slash-separated) or the UUID. Paths and UUIDs both resolve inside the workspace this call resolved to: the `workspac…
workspacestring–Workspace (slug or UUID) this call acts in. Overrides the per-token current-workspace pointer for this call only — read-only, it never moves the pointer. Omit to use the pointer set by `me.set_curren…

No output schema declared.

No examples provided.

search.global ~175

Hybrid FTS + pgvector + RRF search. Returns Markdown excerpts.

NameTypeReqDescription
cursorstring––
instancestring–Instance (slug or UUID) to resolve a `workspace` slug within. Only meaningful for apex tokens, which have no home instance; instance-locked tokens always resolve within their own.
limitinteger––
perspectivestring–Only this workspace's pages and atoms the perspective holds (perspectives.list), at paths with its root stripped.
qstringyes–
scopestring––
workspacestring–Workspace (slug or UUID) this call acts in. Overrides the per-token current-workspace pointer for this call only — read-only, it never moves the pointer. Omit to use the pointer set by `me.set_curren…

No output schema declared.

No examples provided.

search.literal ~245

Exact-substring search over the Markdown projection of pages and atoms — deterministic, unlike hybrid `search.global`. A needle shorter than 3 characters is rejected. Returns one envelope per matched entity, up to 5 hits each as `{ line, col, snippet }`. `case_sensitive` defaults to false; `scope` is workspace | all_mine | all_public. Details: https://carbonforge.dev/docs/p/api/mcp-tools-catalog

NameTypeReqDescription
case_sensitiveboolean––
context_linesinteger––
cursorstring––
instancestring–Instance (slug or UUID) to resolve a `workspace` slug within. Only meaningful for apex tokens, which have no home instance; instance-locked tokens always resolve within their own.
kindsarray––
limitinteger––
qstringyes–
scopestring––
workspacestring–Workspace (slug or UUID) this call acts in. Overrides the per-token current-workspace pointer for this call only — read-only, it never moves the pointer. Omit to use the pointer set by `me.set_curren…

No output schema declared.

No examples provided.

trees.get ~366

Read a code tree's revision (the current one by default), its metadata and surface, and a page of its entries in path order: path, git mode, size and blob SHA-256, optionally under `path_prefix`. A symlink's blob is its target; a submodule link has no blob and gives its `commit`. With `lane`, `metadata` is the lane's bag if it sets one. Anonymous callers read a public code tree's current one.

NameTypeReqDescription
instancestring–Instance (slug or UUID) to resolve a `workspace` slug within. Only meaningful for apex tokens, which have no home instance; instance-locked tokens always resolve within their own.
lanestring–A lane's label. On a write, the change is stored on the lane — a tree as a manifest delta, a library entry as a blob reference — and the trunk is not written. On a read, the trunk's current state wit…
limitinteger––
offsetinteger––
path_or_idstringyesThe tree's path or its UUID.
path_prefixstring––
revision_idinteger––
snapshot_idstring–Read the revision this snapshot names (snapshots.cut); not with revision_id or lane.
workspacestring–Workspace (slug or UUID) this call acts in. Overrides the per-token current-workspace pointer for this call only — read-only, it never moves the pointer. Omit to use the pointer set by `me.set_curren…

No output schema declared.

No examples provided.

workspaces.list ~63

List every workspace the calling user is a member of. This is a membership catalogue and not a capability: it is not narrowed by the token, so a listed workspace may still be outside this token's reach. Call cortex.ground for what this token can actually resolve.

Input schema present but exposes no named parameters.

No output schema declared.

No examples provided.

workspaces.resolve_slug ~50

Resolve a workspace slug to its id, role, and archived state. 404 when the caller isn't a member (no enumeration).

NameTypeReqDescription
instancestring––
slugstringyes–

No output schema declared.

No examples provided.

Install

How do I install the Carbon Forge MCP server?

Carbon Forge is a hosted endpoint at https://carbonforge.dev/api/mcp, so there is nothing to install locally. Ready-made configuration for Claude, Cursor, VS Code, Codex and 5 more is on this page, copied from each client's own documentation.

remote · carbonforge.dev

# add to Claude Code
claude mcp add --transport http 100monkeys-ai-carbon-forge 'https://carbonforge.dev/api/mcp'
Common questions

What is the Carbon Forge MCP server?

Carbon Forge is an MCP server listed in the public MCP registry as io.github.100monkeys-ai/carbon-forge. One record of code, files and pages that people and agents read and write, with lanes and git. This page covers its hosted endpoint (https://carbonforge.dev/api/mcp).

Is the Carbon Forge MCP server safe to use?

Carbon Forge scores 72 out of 100 on VerifyMCP. That is a record of what we were able to check automatically, not an endorsement. The category breakdown on this page shows every signal behind the number, including the ones we could not confirm.

What tools does the Carbon Forge MCP server expose?

Carbon Forge exposes 22 tools: pages.list, pages.read, atoms.list, atoms.read, search.global, and 17 more. Their descriptions and schemas cost roughly 4,913 tokens of context every time the server is loaded.

Does the Carbon Forge MCP server require authentication?

No. We connected to Carbon Forge without credentials and it answered, so anything it exposes is reachable by anyone who knows the address.

Is the Carbon Forge MCP server still maintained?

Carbon Forge is still listed as active in the MCP registry. We last reached this channel on 4 November 2026. Those dates come from our own scans of the registry and the channel itself, not from anything the publisher announced.