# Carbon Forge (remote · carbonforge.dev)

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

- Trust score: 72/100 (medium)
- Change this week: +3
- Registry status: active
- Liveness: live
- Owner verified: no
- Last scored: 2026-11-04

## Components

- remote · `carbonforge.dev`: 72/100 (this document), [markdown](https://verifymcp.io/servers/100monkeys-ai-carbon-forge/api-mcp.md), [page](https://verifymcp.io/servers/100monkeys-ai-carbon-forge/api-mcp)
- remote · `{instance}.carbonforge.dev`: 0/100, [markdown](https://verifymcp.io/servers/100monkeys-ai-carbon-forge/https-instance-carbonforge-dev-api-mcp.md), [page](https://verifymcp.io/servers/100monkeys-ai-carbon-forge/https-instance-carbonforge-dev-api-mcp)

## Channel facts

- Endpoint: `https://carbonforge.dev/api/mcp`
- Transports: `streamable-http`
- Auth: `none`
- Version: `1.0.0`

## Trust breakdown

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. Scores are 0–100 per category. Scoring method: https://verifymcp.io/docs/scoring (what has changed: https://verifymcp.io/docs/scoring/changelog)

Scored 2026-11-04.

- **Endpoint Security**: 69/100
  - The endpoint's TLS certificate is valid, in date, and uses a strong key.
  - No authorisation is required to call this server. Every tool declares its destructiveHint and none is destructive, so open access doesn't expose one.
  - HTTPS enforcement could not be verified: the plaintext port answered with HTTP 405, which proves neither a plaintext path nor enforcement.
  - The HSTS (Strict-Transport-Security) header is present.
  - DNSSEC check failed: this domain isn't protected by DNSSEC.
- **Transport & Reachability**: 100/100
  - Verified streamable-http transport via a live MCP handshake.
- **Schema Quality & AI Usability**: 70/100
  - 100% of prompts and resources have a non-trivial description (not blank, and not just the item's name).
  - AI-judged instruction clarity (good).
  - 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.
  - Usage-examples check failed: none of the tools include examples.
- **Stability & Change Management**: 37/100
  - Stability observed for 11 of 30 days with no destabilising changes; credit accrues until the full window elapses.
- **Tool Coverage**: 84/100
  - 100% of tools have a non-trivial description (not blank, and not just the tool's name).
  - 51% of tool parameters carry a description.
- **Tool Safety**: 100/100
  - No prompt-injection markers were found in the server instructions, tool names or descriptions we captured.
  - We read all 22 captured tool definition(s), and no name or description among them implies an irreversible operation.
  - An AI judge read all 22 captured unit(s) of tool text and found none that tries to manipulate the model reading it.
- **Capabilities**: 100/100
  - Implements a supported MCP spec version (2025-11-25); the latest is 2026-07-28.

## 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.

### Claude

```bash
claude mcp add --transport http 100monkeys-ai-carbon-forge 'https://carbonforge.dev/api/mcp'
```

### Cursor

```json
{
  "mcpServers": {
    "100monkeys-ai-carbon-forge": {
      "url": "https://carbonforge.dev/api/mcp"
    }
  }
}
```

### VS Code

```json
{
  "servers": {
    "100monkeys-ai-carbon-forge": {
      "type": "http",
      "url": "https://carbonforge.dev/api/mcp"
    }
  }
}
```

### Codex

```toml
[mcp_servers.100monkeys-ai-carbon-forge]
url = "https://carbonforge.dev/api/mcp"
```

### opencode

```json
{
  "$schema": "https://opencode.ai/config.json",
  "mcp": {
    "100monkeys-ai-carbon-forge": {
      "type": "remote",
      "url": "https://carbonforge.dev/api/mcp",
      "enabled": true
    }
  }
}
```

### OpenClaw

```bash
openclaw mcp add 100monkeys-ai-carbon-forge --url 'https://carbonforge.dev/api/mcp' --transport streamable-http
```

### Hermes

```yaml
mcp_servers:
  100monkeys-ai-carbon-forge:
    url: "https://carbonforge.dev/api/mcp"
```

### Netclaw

```json
{
  "McpServers": {
    "100monkeys-ai-carbon-forge": {
      "Transport": "http",
      "Url": "https://carbonforge.dev/api/mcp"
    }
  }
}
```

### Vellum

```bash
assistant mcp add 100monkeys-ai-carbon-forge -t streamable-http -u 'https://carbonforge.dev/api/mcp'
```

### Other

```json
{
  "mcpServers": {
    "100monkeys-ai-carbon-forge": {
      "type": "http",
      "url": "https://carbonforge.dev/api/mcp"
    }
  }
}
```

The mcpServers block is a cross-client convention. Remote transports vary, so check your client's docs.

## Changelog

Every change recorded for this component, newest first. Days that predate change tracking, or that we cannot explain, say so: "we were watching and nothing happened" and "we were not watching" are different claims.

### 2026-11-03 (score 72, +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.

### 2026-11-01 (score 71, +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.

### 2026-10-30 (score 70, +1)

- [functional] Server version: d0a1326dfb4e7c7988e1658873c33207645716c9 → ed5376e08c3d569b0fc53e2ea9ff1e9f04d7fa22

### 2026-10-29 (score 69, 0)

- [functional] Server version: bb9acf10c32d7d8d94b2f90ed00b0d4b97167220 → d0a1326dfb4e7c7988e1658873c33207645716c9

### 2026-10-28 (score 69, +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.

### 2026-10-26 (score 68, +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.

### 2026-10-25 (score 67, 0)

- [functional improvement] Stability: unverified → 0.03

### 2026-10-24 (score 67)

First indexed and scored.

## MCP tools (22)

### `pages.list` (~364 tokens)

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

Input parameters:

- `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…

### `pages.read` (~451 tokens)

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

Input parameters:

- `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, required): 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…

### `atoms.list` (~313 tokens)

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.

Input parameters:

- `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…

### `atoms.read` (~454 tokens)

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.

Input parameters:

- `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, required): 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…

### `search.global` (~175 tokens)

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

Input parameters:

- `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, required)
- `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…

### `search.literal` (~245 tokens)

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

Input parameters:

- `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, required)
- `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…

### `discovery.list_entities` (~242 tokens)

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

Input parameters:

- `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, required)
- `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)

### `kg.get_related` (~197 tokens)

Semantic nearest-neighbors via similarity_edges.

Input parameters:

- `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, required)
- `limit` (integer)
- `pathOrId` (string, required): 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…

### `kg.list_cross_links` (~195 tokens)

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

Input parameters:

- `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, required)
- `pathOrId` (string, required): 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…

### `revisions.list` (~208 tokens)

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

Input parameters:

- `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, required)
- `limit` (integer)
- `pathOrId` (string, required): 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…

### `revisions.get` (~198 tokens)

Fetch a specific revision (returns Markdown body).

Input parameters:

- `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, required)
- `pathOrId` (string, required): 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, required)
- `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…

### `revisions.compare` (~228 tokens)

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

Input parameters:

- `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, required)
- `pathOrId` (string, required): 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, required)
- `revision_b_id` (integer, required)
- `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…

### `media.read` (~120 tokens)

Fetch metadata for a single media item.

Input parameters:

- `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, required)
- `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…

### `comments.list` (~193 tokens)

List the comment thread for a page or atom.

Input parameters:

- `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, required)
- `target_pathOrId` (string, required): 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…

### `cortex.ground` (~211 tokens)

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

Input parameters:

- `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)

### `workspaces.list` (~63 tokens)

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.

### `workspaces.resolve_slug` (~50 tokens)

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

Input parameters:

- `instance` (string)
- `slug` (string, required)

### `discovery.list_instances` (~116 tokens)

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.

Input parameters:

- `filter` (string)
- `limit` (integer)
- `query` (string)

### `discovery.list_workspaces` (~121 tokens)

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.

Input parameters:

- `filter` (string)
- `instance_id` (string)
- `limit` (integer)
- `query` (string)

### `discovery.search` (~52 tokens)

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

Input parameters:

- `filter` (string)
- `limit` (integer)
- `q` (string, required)
- `scope` (string)

### `trees.get` (~366 tokens)

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.

Input parameters:

- `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, required): 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…

### `files.list` (~351 tokens)

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.

Input parameters:

- `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…

## Diagnostics

Captured diagnostic sections: TLS, DNSSEC, Authorisation, Transports. The full working is on the page: https://verifymcp.io/servers/100monkeys-ai-carbon-forge/api-mcp#diagnostics

## Score history

- 2026-11-04: 72
- 2026-11-03: 72
- 2026-11-02: 71
- 2026-11-01: 71
- 2026-10-31: 70
- 2026-10-30: 70
- 2026-10-29: 69
- 2026-10-28: 69
- 2026-10-27: 68
- 2026-10-26: 68
- 2026-10-25: 67
- 2026-10-24: 67

## 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.

## Links

- Remote endpoint: https://carbonforge.dev/api/mcp
- Website: https://carbonforge.dev/
- Changelog RSS feed: https://verifymcp.io/servers/100monkeys-ai-carbon-forge/api-mcp.xml
- Changelog JSON feed: https://verifymcp.io/servers/100monkeys-ai-carbon-forge/api-mcp.json
- HTML version of this page: https://verifymcp.io/servers/100monkeys-ai-carbon-forge/api-mcp
