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.
Available components
Last scanned (18 hours ago)
Scores higher than 58% of remote servers
Reachable. Last reached 4 Nov 2026.
Category Documents and Files
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
- The endpoint's TLS certificate is valid, in date, and uses a strong key. View diagnostics → Pass
- No authorisation is required to call this server. Every tool declares its destructiveHint and none is destructive, so open access doesn't expose one. See how to fix → View diagnostics → Partial
- HTTPS enforcement could not be verified: the plaintext port answered with HTTP 405, which proves neither a plaintext path nor enforcement. View diagnostics → Unverified
- The HSTS (Strict-Transport-Security) header is present. View diagnostics → Pass
- DNSSEC check failed: this domain isn't protected by DNSSEC. See how to fix → View diagnostics → Fail
Transport & Reachability100
- Verified streamable-http transport via a live MCP handshake. View diagnostics → Pass
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
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.
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 |
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 →
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.
| Name | Type | Req | Description |
|---|---|---|---|
| body_contains | string | – | – |
| cursor | string | – | – |
| direction | string | – | Direction for `sort`. Ascending by default. |
| include_metadata | boolean | – | 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. |
| instance | string | – | 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. |
| limit | integer | – | – |
| metadata | object | – | 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_prefix | string | – | – |
| sort | string | – | Order the listing by path (the default), last update, or creation time. |
| workspace | string | – | 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.
| Name | Type | Req | Description |
|---|---|---|---|
| instance | string | – | 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. |
| lane | string | – | 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… |
| pathOrId | string | yes | Either 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… |
| section | string | – | 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… |
| workspace | string | – | 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.
| Name | Type | Req | Description |
|---|---|---|---|
| instance | string | – | 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_kind | string | yes | – |
| target_pathOrId | string | yes | Either 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… |
| workspace | string | – | 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
| Name | Type | Req | Description |
|---|---|---|---|
| instance | string | – | – |
| known_grounding_at | string | – | 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_at | string | – | 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… |
| workspace | string | – | – |
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
| Name | Type | Req | Description |
|---|---|---|---|
| cursor | string | – | – |
| filters | object | – | – |
| instance | string | – | 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. |
| kind | string | yes | – |
| limit | integer | – | – |
| q | string | – | – |
| sort | string | – | – |
| workspace | string | – | 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_id | string | – | – |
| workspace_slug | string | – | – |
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.
| Name | Type | Req | Description |
|---|---|---|---|
| filter | string | – | – |
| limit | integer | – | – |
| query | string | – | – |
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.
| Name | Type | Req | Description |
|---|---|---|---|
| filter | string | – | – |
| instance_id | string | – | – |
| limit | integer | – | – |
| query | string | – | – |
No output schema declared.
No examples provided.
discovery.search ~52
Search instance and workspace metadata + grounding documents. Returns parallel lists for both scopes.
| Name | Type | Req | Description |
|---|---|---|---|
| filter | string | – | – |
| limit | integer | – | – |
| q | string | yes | – |
| scope | string | – | – |
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.
| Name | Type | Req | Description |
|---|---|---|---|
| instance | string | – | 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. |
| lane | string | – | 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. |
| limit | integer | – | Nodes per page, default 100. |
| offset | integer | – | – |
| path | string | – | A path in the workspace, e.g. "repos/pilot/bin": case kept, slash-separated, no leading slash. Omit or pass "" for the root. |
| perspective | string | – | Only what this perspective holds (perspectives.list), at paths with its root stripped; an anonymous caller sees its public part. Not with surface. |
| surface | string | – | Only entities whose metadata's surface is this one (a tree's files go with their tree). |
| workspace | string | – | 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.
| Name | Type | Req | Description |
|---|---|---|---|
| instance | string | – | 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. |
| kind | string | yes | – |
| limit | integer | – | – |
| pathOrId | string | yes | Either 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… |
| workspace | string | – | 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.
| Name | Type | Req | Description |
|---|---|---|---|
| instance | string | – | 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. |
| kind | string | yes | – |
| pathOrId | string | yes | Either 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… |
| workspace | string | – | 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.
| Name | Type | Req | Description |
|---|---|---|---|
| instance | string | – | 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_id | string | yes | – |
| workspace | string | – | 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
| Name | Type | Req | Description |
|---|---|---|---|
| body_contains | string | – | – |
| cursor | string | – | – |
| direction | string | – | Direction for `sort`. Ascending by default. |
| include_metadata | boolean | – | 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. |
| instance | string | – | 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. |
| limit | integer | – | – |
| metadata | object | – | 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_prefix | string | – | – |
| sort | string | – | Order the listing by path (the default), last update, or creation time. |
| workspace | string | – | 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
| Name | Type | Req | Description |
|---|---|---|---|
| instance | string | – | 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. |
| lane | string | – | 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… |
| pathOrId | string | yes | Either 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… |
| section | string | – | 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… |
| workspace | string | – | 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.
| Name | Type | Req | Description |
|---|---|---|---|
| instance | string | – | 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. |
| kind | string | yes | – |
| pathOrId | string | yes | Either 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_id | integer | yes | – |
| revision_b_id | integer | yes | – |
| workspace | string | – | 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).
| Name | Type | Req | Description |
|---|---|---|---|
| instance | string | – | 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. |
| kind | string | yes | – |
| pathOrId | string | yes | Either 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_id | integer | yes | – |
| workspace | string | – | 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).
| Name | Type | Req | Description |
|---|---|---|---|
| cursor | string | – | – |
| instance | string | – | 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. |
| kind | string | yes | – |
| limit | integer | – | – |
| pathOrId | string | yes | Either 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… |
| workspace | string | – | 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.
| Name | Type | Req | Description |
|---|---|---|---|
| cursor | string | – | – |
| instance | string | – | 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. |
| limit | integer | – | – |
| perspective | string | – | Only this workspace's pages and atoms the perspective holds (perspectives.list), at paths with its root stripped. |
| q | string | yes | – |
| scope | string | – | – |
| workspace | string | – | 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
| Name | Type | Req | Description |
|---|---|---|---|
| case_sensitive | boolean | – | – |
| context_lines | integer | – | – |
| cursor | string | – | – |
| instance | string | – | 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. |
| kinds | array | – | – |
| limit | integer | – | – |
| q | string | yes | – |
| scope | string | – | – |
| workspace | string | – | 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.
| Name | Type | Req | Description |
|---|---|---|---|
| instance | string | – | 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. |
| lane | string | – | 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… |
| limit | integer | – | – |
| offset | integer | – | – |
| path_or_id | string | yes | The tree's path or its UUID. |
| path_prefix | string | – | – |
| revision_id | integer | – | – |
| snapshot_id | string | – | Read the revision this snapshot names (snapshots.cut); not with revision_id or lane. |
| workspace | string | – | 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).
| Name | Type | Req | Description |
|---|---|---|---|
| instance | string | – | – |
| slug | string | yes | – |
No output schema declared.
No examples provided.
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
claude mcp add --transport http 100monkeys-ai-carbon-forge 'https://carbonforge.dev/api/mcp'
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.