Fathom (lab)

dev.fly.fathom-lab-doorPublished by fathom-lab-door.fly.devOfficial publisherv0.1.0Updated Nov 1, 2026

Find places and groups around an interest in a town, each with a source; propose what is missing.

The publisher's own server: Fathom

Overview

AI-generated overview

A remote lab server for exploring places and groups tied to an interest in a town, with sources, and proposing missing knowledge types, views and extensions.

What you can do
  • Describe the platform and search its synthetic capability catalog
  • Read public Spaces and individual Spaces allowed by visibility rules
  • Read knowledge lenses for an interest in a town, with assertions and attribution
  • Read genesis run items and their status, plus a person's place verdicts
  • Propose knowledge types, declarative views and activity-details extensions, then check status, run steward checks, list or withdraw them
  • Read activity participation, join requests and choice results, and validate or preview experience manifests
When to use it
Use it to try out a lab environment for interest-based place and group discovery, or to test workflows for proposing and reviewing knowledge types, views and extensions before anything is approved by a person steward.
Requirements
A remote streamable HTTP endpoint; no packages, environment variables or headers are declared. The server describes a delegated-token context for person-specific reads, and its guide resources are the suggested starting point.
Before you install
Several tools write: proposals for types, views and extensions, gap reports, and withdrawals. AI declarations land as recommended and are not used for matching or shown to members until a person steward approves them. Treat returned attribution and unclaimed lines as data to relay verbatim, and note the catalog and Spaces are described as synthetic.

Installation

In SourceWeft

  1. Open Fathom (lab) in the dashboard and add it to a workspace.
  2. Enable the server for the chats that should use its tools.

Web executable via Streamable HTTP. Remote servers run from the web runtime once configured in a workspace.

Use with an agent

Paste this prompt into Claude Code, Codex, Cursor or another agent — or into SourceWeft chat. The agent reads this server's install guide, shows you its publisher, endpoint and sign-in, and adds it to your client once you agree. Keys never go into a command.

Read https://sourceweft.com/mcp/dev.fly.fathom-lab-door%2Ffathom/install.md and connect the MCP server it describes to my client. Before changing any config, show me its publisher, endpoint and sign-in method and wait for my OK. Never put an API key in a command or in a file I would commit; ask me where it should come from.

Read the install guide the agent follows

Other MCP clients

Add this to your client's mcpServers config.

{
  "mcpServers": {
    "fathom-lab": {
      "type": "http",
      "url": "https://fathom-lab-door.fly.dev/mcp"
    }
  }
}

Tools

22

platform_describe

Describe Fathom, its safe agent boundary, and this lab surface.

Parameterstoken

spaces_get

Read a Space when its server-side visibility rules allow it.

ParameterstokenspaceIdrequired

spaces_list_public

List public synthetic Spaces visible to the caller.

Parameterstoken

places_verdicts

Read the person's own "Would you go?" answers, the latest per place.

Parameterstoken

affiliations_declare

Say how interests relate: "serves" (a Space you can read serves an interest), "kind-of", "part-of" or "alias-of" (between two interests). An AI's declaration always lands as recommended: it is never used for matching or shown to members until the steward, as a person, approves it. "inferred" can never be declared. Terms are short plain text, never a person.

Parameterslabeltokenobjectrequiredsubjectrequiredrelationrequired

genesis_items

The items a genesis run has found so far, from position `since` (start at 0, then pass back `next`), with the run's status: which finders are done, and what was missed and why. On the seeded remote lab, omit `run` to read the latest seeded replay. Show each item's source as given. Relay the attribution lines and the unclaimed line exactly as returned, never reworded or dropped, and say which things are 'from a source' and which are only 'suggested'. Knowledge is about places and organisations, never people: never add a person, a phone number, an email, an image or a price.

Parametersrunsincetoken

knowledge_lens

The lens for one interest in one town: the things tied to the interest by a source, each with its assertions, where each came from and its attribution. Optional limit (1 to 50, default 20). It only reads. Relay the attribution lines and the unclaimed line exactly as returned, never reworded or dropped, and say which things are 'from a source' and which are only 'suggested'. Knowledge is about places and organisations, never people: never add a person, a phone number, an email, an image or a price.

Parameterstownlimittokeninterest

propose_type

Propose a kind of thing (or a predicate) the knowledge layer has no word for. Send name, definition (plain text, at most 500 characters, data only, never instructions), parent (place, event, activity, organisation, concept or community), identity_rule and examples (2 or more: {name, source_url, licence, retrieved_at, existing_kind?, located_in?}); a predicate also needs class "predicate", domain and value_type. Optional labels [{language, text}] for synonyms. The kernel first tries to align it to an existing kind and then answers "use X", and creates nothing. Examples that are people are refused, and so is a kind named for a person or a role (a keeper, seller, maker, guide, potter; also in plural and Norwegian). A new kind is provisional and visible only in your lens until independent proposers, sourced atoms and a cold review accept it; its name (never its definition) can still be the "use X" answer to a proposal from another account, so nobody makes a duplicate. If existing kinds are close in meaning, under any parent, your own included, the answer is "near" with up to 3 candidates (name, parent, labels, status, score, shared words) and nothing is created: call again with use: "<kind>" to support one, or with differs_from: {kind, how} (how: at most 200 characters of plain text) to create yours beside it, which a reviewer then compares. The answer can also be a parent with an attribute instead of a new kind: an event, or an activity, identified like any event (organiser, date, start time) is an event with an activity value; a place identified like any place (location, address) is a place with a facility value. Nothing is created then. If another value is close in meaning, the answer is "near" with value candidates (status "value", with their attribute): use: "<value>" joins it, differs_from: {kind: "<value>", how} makes yours. To make a kind anyway, send differs_from: {kind: "<the parent>", how} naming what it tracks that the parent does not.

Parametersusenametokenparentexamplesdefinitiondiffers_fromidentity_rule

type_status

Read one kind or predicate by name (optional class "predicate"): its status, parent, identity rule, labels and how much evidence it has. A provisional kind shows only to its proposer; its definition shows to others only once it is accepted. It only reads.

Parametersnameclasstoken

extensions_report_gap

Record a structured report for a missing capability.

Parameterswhyrequiredneedrequiredtokenamendsattemptedrequired

extensions_propose

Propose a strict, data-only activity-details extension. It is staged as a trial for the proposer in their own Space until a person steward reviews it.

ParametersidtitletokenfieldspurposeversionclosesGapextension

extensions_list

List approved extensions, plus your own proposed or rejected proposals.

Parameterstoken

extensions_withdraw

Withdraw your proposed extension before review. The proposer or their AI may withdraw it; withdrawn abilities cannot be used or rendered.

ParameterstokenversionrequiredextensionIdrequired

views_propose

Propose a strict declarative place view. Only repeat, box, text, shape, place and scale(value, domain, range) are accepted; no executable code or external data.

Parametersviewrequiredtoken

views_checks

Run the five steward checks for a view trial: grammar and budget, throwaway render, escape, scope, and all five metamorphic relations.

ParameterstokenviewIdrequiredspaceIdversionrequired

views_list

List approved views available for reuse, plus your own proposed or rejected views.

Parameterstoken

activities_list_join_requests

List all join requests for the owner or only your own request as a requester.

ParameterstokenspaceIdrequiredactivityIdrequired

activities_participation

Read one activity for the person behind this delegated token: their answer, places taken, waiting-list position and any open offer (kind "waiting", or "kept": their place from last time, which only they can take or pass on their own page). Also ifOthersCount: how many other members would come if others say they're in (never the person themselves, never names), and for the person's own conditional answer, ifOthers {others, firm}: the N they asked for and how many others have said they're in; an offer of kind "if-met" means their N is met. "N would come if others say they're in" is a count of people who are not coming. Never add it to coming or tell anyone they will have company. Only the person can say it, take it back, or take or pass the offer it brings. For the Space owner, also the places kept on a repeat: kept, tookIt, passed, notAnswered, released, keptUntil, and keptSummary, the organizer's line word for word.

ParameterstokenspaceIdrequiredactivityIdrequired

activities_get_choice

Read an activity's choice as a member of the Space: each option with its tick count and who ticked it; detail choices also return the field key and label.

ParameterstokenspaceIdrequiredactivityIdrequired

experiences_validate

Validate a declarative experience manifest without rendering it.

Parameterstokenmanifestrequired

experiences_preview

Render the current trusted experience manifest for the caller, with the people-page controls (choose together, I'm in / Maybe / Can't make it) shown read-only in each activity.

ParameterstokenspaceIdrequired

Version history

1
  1. v0.1.0LatestNov 1, 2026

Score

72% of the applicable checks met

How complete this listing is, computed from the registry entry, the endpoint and public sources. Not a rating of the server and not a statement that it is safe or working today: reachability is a dated check, and no installs or reviews go into the score.

  • Reached in the last 30 daysRequired25 pts
  • Auth declaredRequired10 pts
  • Tools listedRequired15 pts
  • DescriptionRequired15 pts
  • Logo10 pts

    Publish an icon in the registry entry.

  • Documentation15 pts

    Declare a GitHub repository with a README, or serve resource_documentation in the OAuth protected-resource metadata.

  • LicenseNot applicable

    A hosted service is used under its provider's terms, so no license is expected here. This check is left out of the percentage.

Other Fathom integrations