mcpbeat Sign in

Immersive Commons MCP Server

by immersivecommons Your server? Claim it
not responding

Immersive Commons is listed as active in the registry but did not answer our last check. It exposes 22 tools. Last commit 8 Sep 2026.

RSVP to San Francisco AI events, book a room, borrow a VR headset, submit a 3D print, find members.

Uptime history 51 days of history · worst day 12%
51 days agonow
17.4%
Uptime 24h
16 of 92 checks
22
Tools
read from the server
969 ms
Response time
average over 24h
0
Stars
last commit 8 Sep 2026

What changed 260

Every tool that appeared, vanished or quietly changed what it asks for. Recorded since 11 August 2026. No other catalogue keeps this.

15 Sep a tool description was rewritten ic_scheduling_manage_booking
13 Sep a tool description was rewritten ic_scheduling_manage_booking
12 Sep 3 tools appeared ic_scheduling_get_availability, ic_scheduling_list_meeting_types, ic_scheduling_manage_booking
12 Sep a tool description was rewritten ic_news_get
9 Sep 5 tools appeared ic_forms_get, ic_forms_list, ic_forms_my_submission and 2 more
9 Sep a tool changed version
4 Sep 3 tools appeared ic_spatial_beta_apply, ic_spatial_beta_program, ic_spatial_beta_status
4 Sep 2 tool descriptions were rewritten ic_donate, ic_signal_get_latest
4 Sep 2 tools changed the parameters they ask for ic_donate, ic_signal_get_latest
2 Sep 184 tools disappeared floor10_extract_event_metadata, floor10_get_my_floor_member, floor10_list_claimable_events and 181 more
and 57 more, back to 11 August 2026

What the code does

We read the source, 17 h ago · tools taken from the live server · rules 3dff92dd89df

Capabilities

What this server is able to do. For an MCP server this is often the job itself — a terminal server runs commands because that is what it is for. Listed so you know what you are plugging in, not as an accusation.

Runs an external command packages/mcp/bin.js:31
const r = spawnSync(process.platform === "win32" ? "npx.cmd" : "npx", args, {

Is this your server and something here is wrong? Tell us — corrections are free and do not require a plan.

This code can reach further than it looks

We found places where it runs commands, builds paths or queries from values it is given. None of that is a flaw by itself — it becomes one when the code changes, and code changes quietly between releases. We re-read it on every one.

Three servers free · no card

Connect this server

Endpoint below is the one we actually reach during checks — not the one copied from a README. Last verified 2 min ago.

run in your terminal
claude mcp add floor10 --transport http https://www.immersivecommons.com/api/mcp
~/Library/Application Support/Claude/claude_desktop_config.json
{
  "mcpServers": {
    "floor10": {
      "url": "https://www.immersivecommons.com/api/mcp"
    }
  }
}
~/.codex/config.toml
[mcp_servers.floor10]
url = "https://www.immersivecommons.com/api/mcp"
.cursor/mcp.json
{
  "mcpServers": {
    "floor10": {
      "url": "https://www.immersivecommons.com/api/mcp"
    }
  }
}
.vscode/mcp.json
{
  "mcpServers": {
    "floor10": {
      "url": "https://www.immersivecommons.com/api/mcp"
    }
  }
}

Available tools 22

Read directly from the server with tools/list, grouped by what they act on. If a tool disappears, we record the date.

forms
ic_forms_get
The whole definition of one form: every question, its `kind` (short | long | bool | choice | email | url), whether it is required, the exact `options` a `choice` answer must match, and a `why` saying what the answer is actually used for. THIS IS THE READ-BEFORE-YOU-WRITE TOOL — call it before ic_forms_submit so you answer well instead of guessing, and relay each `why` to your human rather than deciding for them what a question is really asking. `facts` carries the program's own terms (things like how long it runs and what it pays) as ordered label/value pairs — read them to your human BEFORE they commit to anything. `gates` names the questions whose 'no' decides most submissions on its own; a truthful no there is recorded rather than blocking, and beats a flattering yes. TWO DIFFERENT RINGS, and confusing them is the main way an agent misleads its human here: `audience` is the minimum ring to SUBMIT (often `public`, meaning anyone at all), while `approval_requires_tier` is the minimum ring to be APPROVED. Anyone may raise a hand on an open call; being taken can still require membership. Report both, and never tell your human they qualify on the strength of `can_submit` alone. `accepting_submissions` is live runtime state, not a property of the definition — a form can be closed between your read and your submit. Args: { form_id }. Returns: { ok, form, can_submit, accepting_submissions, cannot_submit_reason?, required_tier? }. No auth required. An unknown form and a form you may not see return the SAME not_found, on purpose — telling a stranger 'that exists but is not for you' is itself the disclosure.
ic_forms_list
Every form Immersive Commons is currently taking answers to, filtered by who you are. START HERE — do not guess a form id. Each entry carries its `form_id`, title, summary, the membership ring it is open to, whether YOU can answer it right now, and if you cannot, the reason and the ring you would need. A form you can SEE but not answer is LISTED rather than hidden, because a program nobody outside can discover is a program nobody outside ever joins; a form you may not see at all is omitted, because a list of titles you cannot open is a disclosure with no upside. What a listing never contains is anyone's answers. Args: none. Returns: { ok, count, forms[{ form_id, title, summary, audience, can_submit, cannot_submit_reason?, required_tier?, question_count }] }. No auth required; sending a token narrows nothing and only lets `can_submit` be truthful about your human's actual ring.
ic_forms_my_submission
The status of one submission — YOUR human's, never anybody else's. No token required. Two ways in: a signed-in identity resolves its own record with no id at all, or `submission_id` plus the `claim_token` handed back once at submit time opens the record that token belongs to. An id ALONE never works: ids travel through URLs and chat logs, and if an id were a credential every stranger's answers would be readable by anyone who ever saw a link. A wrong id, a wrong token and an id that was never issued all return the same `found: false`, so this cannot be used to test which ids exist. What comes back is status, dates and failed gates — never the answers as stored, never the reviewer's private note. Args: { form_id, submission_id?, claim_token? }. Returns: { ok, found, submission? }. No auth required.
ic_forms_submit
Submit answers to one form. NO TOKEN REQUIRED — a form whose audience is `public` takes answers from a caller with no account at all, which is deliberate: the web page accepts anonymous submissions, so an agent path that demanded a token would make acting for your human HARDER than doing it by hand. Each form still declares its own audience ring and it is checked here, live, on every call; a refusal names the ring and how to ask for it, and is distinct from 'no such form'. THIS WRITES A REAL SUBMISSION UNDER A REAL PERSON'S NAME. CONFIRM EVERY ANSWER WITH YOUR HUMAN BEFORE CALLING THIS AND NEVER INVENT ONE — an answer you guessed becomes a promise they have to keep, and the gate questions in particular are commitments rather than preferences. Call ic_forms_get first for the question ids, kinds and exact allowed options. WHAT THIS IS: an expression of interest that opens a screening step — NOT a final application, and nothing is signed here. Do not tell your human they have applied; tell them they have raised their hand. If they are selected, a separate application arrives from the partner out of band. One submission per email address per form; a second is REFUSED and the first is NOT overwritten, so a correction goes to the form's contact address rather than a resubmit. A `claim_token` comes back ONLY for an unattributed submitter, and only once — surface it verbatim, because it is then the only way they can ever read their own submission again. A caller carrying an identity gets none and does not need one. Args: { form_id, answers }. Returns: { ok, submission_id, status, failed_gates, claim_token?, counts, message }. No auth required; a token only attributes the submission.
ic_forms_withdraw
Take your human's own submission back. NO TOKEN REQUIRED, and no token grants this on anyone else's behalf: the ONLY things that open a record here are your human's signed-in identity or the submission_id plus the one-time claim_token handed back at submit. An operator cannot do it for them, a reviewer cannot do it for them, and `admin:forms_manage` does not reach this — withdrawing belongs to the person who submitted, because a reviewer withdrawing on somebody's behalf is a rejection wearing that person's name. CONFIRM WITH YOUR HUMAN BEFORE CALLING, in the plainest words you have. THIS CANNOT BE UNDONE BY ANYONE HERE: no reviewer can move a withdrawn record back, and on a form that asks for an email address, answering again on that address is REFUSED, so a withdrawal is not a way to redo an application. If they had been APPROVED, withdrawing hands their place back to the group and somebody on the waitlist can take it — `freed_slot` in the response tells you whether that happened, and it is the sentence to read to them. Idempotent: a record that was already withdrawn comes back ok with `changed: false` rather than an error, so a retry after a timeout is safe. A wrong id, a wrong token and an id that was never issued all return the same `found: false`, so this cannot be used to test which ids exist. Args: { form_id, submission_id?, claim_token? }. Returns: { ok, found, submission_id?, status?, previous_status?, changed?, already_withdrawn?, freed_slot?, counts?, message }. No auth required.
signal
ic_signal_get_issue
Fetch one issue by slug. Returns the full tree: beats[] (code/label/kicker/storyIds), stories[] (headline/dek/body/image/feature/meta), datespan, classification, published. No auth required. Args: { slug: string (e.g. "issue-05") }.
ic_signal_get_latest
Convenience tool — returns the most-recent issue summary (same shape as one element of ic_signal_list_issues.issues[]). No auth required. Args: { include_stories?: boolean (default false — when true the issue's story list is inlined as stories[] with id/title/dek, saving a follow-up ic_signal_get_issue round trip) }.
ic_signal_get_story
Fetch one story by (issue slug, story id). The story id is the kebab-case slug stored on each story (e.g. "grok-build", "shai-hulud-2"). Returns the story tree including body paragraphs, feature card, image, and source citations. No auth required. Args: { slug: string, story_id: string }.
ic_signal_list_issues
List issue summaries for THE SIGNAL, Immersive Commons' weekly AI intelligence dispatch. Newest first. No auth required. Args: { limit?: number (max 50, default 10) }. Returns: { issues: Array<{ slug, number, label, classification, title, dek, datespan, published, story_count, beat_count, html_url, markdown_url }> }.
ic_signal_search
Substring search across every published SIGNAL issue. Matches on issue title + dek, beat label + kicker, story headline + dek + body. Case-insensitive. Returns ranked hits with a snippet + the slug + (when matched in a story) story_id. No auth required. Args: { q: string (2-120 chars), limit?: number (max 50, default 10) }.
scheduling
ic_scheduling_get_availability
Open slots for one meeting type AND the member's full booking policy, in ONE response. The policy is included deliberately so you can solve locally instead of probing: repeated narrowing calls are what turn a lookup into a negotiation, and this surface refuses to be negotiated with. Every start/end is UTC ISO-8601 with a trailing Z; member.tz and the echoed viewer_tz are IANA zone names — never do wall-clock arithmetic without one. READ complete BEFORE YOU READ slots. ok:true with complete:false is an INCOMPLETE SUCCESS, not a failure: part of the member's calendar could not be read, coverage.unknown_minutes says how much and unknown_windows[] says which windows and why. Those windows are OMITTED from slots, never guessed free — so do not tell your human the member is free then, and do not tell them the member is busy then either. The honest sentence is that we could not see part of their calendar. horizon.effective_to may be earlier than what you asked for when a member's constraint data runs out; that is 'not offered', which is a definite statement and is NOT the same fact as unknown. An empty slots with complete:true genuinely means booked solid or outside the window. NO TOKEN REQUIRED. The same reads are served by the scheduling service itself at https://sched.skew.site; its protocol document is https://sched.skew.site/v1/.well-known/scheduling. Args: { handle, meeting_type, from?, to?, tz? }. Returns: { ok, complete, member, meeting_type{duration_minutes,slot_granularity_minutes,min_notice_minutes,max_per_day,buffer_before_minutes,buffer_after_minutes,location_kind,requires_approval}, slots[], coverage, unknown_windows[], horizon?, generated_at }. No auth required.
ic_scheduling_list_meeting_types
What you may book with one IC member: every PUBLIC meeting type they publish, with its duration, location kind, notice window and booking horizon. START HERE — a slug guessed rather than read is the commonest way an availability call returns not_found. NO TOKEN REQUIRED, and that is the point: a visitor's agent must be able to discover a member's booking link without an IC account, exactly as a human opening the link can. Visibility is filtered in the scheduling service's own SQL — members_only, unlisted and deactivated types never reach this response and are not filtered here, so an empty meeting_types means this member publishes nothing public, NOT that a filter hid something. min_notice_minutes and horizon_days are the two policy fields that decide whether a slot you want can exist at all; read them before proposing times to your human. The same reads are served by the scheduling service itself at https://sched.skew.site; its protocol document is https://sched.skew.site/v1/.well-known/scheduling. Args: { handle }. Returns: { ok, member:{handle,display_name,tz}, meeting_types[{slug,title,description,duration_minutes,location_kind,min_notice_minutes,horizon_days,requires_approval}] }. No auth required.
ic_scheduling_manage_booking
The way OUT of a booking, and it is first-class on purpose: an agent that has to ask its human to click a link in an email simply ghosts, and no-shows are the failure mode that actually burns members' time. NO TOKEN REQUIRED — the booking's own cancel_token IS the credential, exactly as a form's claim token is for an account-less submitter. Putting the exit behind an IC account nobody was issued is how a person ends up emailing a human to be removed. Authorization has not been skipped, it has MOVED into the resource: the token is checked in constant time and a WRONG token gives the SAME answer as a missing booking (not_found), so this cannot be used to discover which booking ids exist. action:read returns the booking's current state. action:cancel is idempotent — cancelling an already-cancelled booking is a SUCCESS, not an error, so a retry after a dropped response does not look like a failure. action:reschedule NEEDS start. A refused move leaves the original booking untouched: the release and the new booking are one transaction, so an error means nothing changed and you may try another slot. Confirm cancel and reschedule with your human first; both are visible to the member immediately. booking.id in a reschedule response is NEW and is the one to keep; cancel_token is unchanged. Reading the OLD id with the same token returns the LIVE booking (booking.id is the new id) plus superseded{id,start,end,rescheduled_by} naming the booking you asked for, so a saved manage link keeps working after the owner moves the meeting. Args: { booking_id, cancel_token, action, start?, reason?, idempotency_key? }. Returns: { ok, booking{id,status,start,end,cancel_token,cancelled_by,rescheduled_by,rescheduled_to}, superseded?{id,start,end,rescheduled_by}, member, meeting_type, location_url, ics, calendar{status} } or { ok:false, error_kind } from not_found | slot_taken | outside_window | too_soon | rate_limited | validation | transient. No auth required.
spatial
ic_spatial_beta_apply
Submit an application to the 50-person spatial-computing beta. WRITES a real application under a real person's name and commits them to a 5-week in-person NDA-bound program, so CONFIRM EVERY ANSWER WITH YOUR HUMAN FIRST and never invent one on their behalf - particularly the NDA, commitment and in-person answers, which are promises they have to keep. Call ic_spatial_beta_program first for the catalog and the exact allowed values. One application per email address; a second is refused rather than silently merged. The response carries a `claim_token` shown EXACTLY ONCE: surface it to your human verbatim, because without it an applicant with no IC account can never read their own status again. No auth required; a token only attributes the application. Returns: { ok, application_id, claim_token, status, failed_gates, cohort, message }.
ic_spatial_beta_program
Everything needed to apply to the Immersive Commons spatial-computing beta: the terms (50 testers, 5 weeks, $160 paid ON COMPLETION, in person at Frontier Tower San Francisco, strict NDA, a pre-release AI spatial-computing device 6-12 months from release), every application question, and the REASON each is asked. Call this BEFORE ic_spatial_beta_apply so you answer well instead of guessing. `gates` names the three booleans that decide most applications - the NDA, the 5-week commitment, and being able to attend in person; a no to any of them is very likely a rejection, and saying so honestly beats applying anyway. Args: none. Returns: { ok, form, cohort: { size, approved, remaining } }. No auth required.
ic_spatial_beta_status
Where one application stands. Needs BOTH the application_id and the claim_token returned at submission: an id alone returns only public slot counts and never anyone's record, because ids travel through URLs and chat logs and must not work as credentials. A wrong or missing token is answered exactly like an unknown id, so this cannot be used to test whether an id exists. Args: { application_id, claim_token }. Returns: { ok, found, application?, cohort }. No auth required.
presentations
ic_presentations_get
Fetch a single presentation by its session number (optionally disambiguated by series). Session numbers are VCN-only; non-VCN talks (ClawCamp, standalone Talks) have no session_no — discover those via ic_presentations_list (filter series='ClawCamp'). No auth required. Returns the full ingest-friendly record. Args: { session_no: number, series?: string }. Returns: { scaffold, presentation: { session_no, series, title, date, format, public_url, deployed, speaker?, event?, summary?, content? } } where `content` is the talk's full curated llms.txt distillation (present for decks that ship one — read it instead of fetching the deck). On a miss, an error listing the available { series #session_no } entries. If session_no alone is ambiguous across series, the newest match wins — pass `series` to target one exactly.
ic_presentations_list
List the public archive of presentations given at Immersive Commons events, Vibe Coding Nights (VCN), ClawCamp, and other community talks — newest first, grouped by series. No auth required. NOT to be confused with ic_resources_list (that lists bookable rooms). Use ic_presentations_get for one VCN session's detail. Args: { series?: string (e.g. 'VCN'|'ClawCamp'|'Talk'), format?: 'deck'|'slides'|'video'|'doc'|'link', limit?: number (max 200, default 100) }. Returns: { count, total, series: string[], scaffold, by_series: Array<{ series, presentations: P[] }>, presentations: P[] (flat) } where P = { session_no (number, VCN-only; null for non-VCN talks), series, title, date, format, public_url, deployed, speaker?, event?, summary? }. `scaffold:true` means placeholder data (real manifest not yet synced). `public_url` is a direct view/download link, null if unpublished (local-only).
donate
ic_donate
Support Immersive Commons with an on-chain USDC donation over x402 (HTTP 402 + USDC on Base). No auth required. Returns the donation tiers, the receiving wallet (payTo), the asset + network, and the donate URL. MCP can't run the in-band 402 handshake itself, so to donate: POST https://www.immersivecommons.com/api/x402/donate with an x402 X-PAYMENT header (sign an EIP-3009 USDC authorization for one of the tier amounts to payTo on the given network); the first call with no X-PAYMENT returns a 402 listing every tier in accepts[]. Optional donor { name, message } can be sent in the JSON body and appear on the public donor wall at /donate. Args: { tier?: string (a tier label, case-insensitive — narrows tiers[] to that single tier and adds `selected_tier` with the exact atomic USDC amount to sign; an unknown label returns error_kind:"validation" naming the valid labels) }.
donations
ic_donations_total
Returns the running total raised (USD), the donor count, and the most recent settled donations (name, amount, message, tx, ts) shown on the public donor wall at /donate. No auth required. Args: { limit?: number (1-50, default 10) }.
funko
ic_funko_catalog
The full catalog of things a Funko Me figure can earn — animation clips, props, skins, stages — with the condition that unlocks each one. No auth required; this is the rules table, not anybody's progress. Use it to explain to a human WHY something is locked, or to show what is worth doing on the floor. An item with no `requires` is granted to every signed-in member. Conditions read as either { signal, gte } (a measurable: commits this week, GLM tokens burned, events attended, days of tenure) or { minTier } (a membership ring). For one member's actual progress against these, call ic_funko_progress. Args: { kind?: 'clip'|'prop'|'skin'|'stage'|'capability' }. Returns: { ok, count, items[{ id, kind, label, blurb?, rarity, requires?, asset? }] }. No auth required.
news
ic_news_get
Returns newagg's velocity-ranked AI news — each item carries url + velocity + summary (plus dek, beat, date, publishedAt, image, focal). This is the RAW aggregator feed (the same firehose that drives the floor10 news kiosk), a DIFFERENT surface from ic_signal_* (which serves THE SIGNAL, the weekly editorial dispatch). Items come back ranked highest-velocity-first (ties keep the feed's own order). No auth required. Args: { limit?: number (1-25, default 20), min_velocity?: number (>=1, default 1 — keep only items corroborated by >= this many sources), q?: string (2-80 chars, case-insensitive substring over title + summary) }.

Tools removed

Tools this server used to expose. Anything built against them stopped working on the day they went.

floor10_extract_event_metadata
removed 2 Sep 2026
floor10_get_my_floor_member
removed 2 Sep 2026
floor10_list_claimable_events
removed 2 Sep 2026
floor10_list_my_pending
removed 2 Sep 2026
floor10_submit_highlight
removed 2 Sep 2026
floor10_upload_image
removed 2 Sep 2026
floorcast_effective_features
removed 2 Sep 2026
floorcast_my_roles
removed 2 Sep 2026
floorcast_preview_ai_curation
removed 2 Sep 2026
floorcast_push
removed 2 Sep 2026
floorcast_run_ai_curation
removed 2 Sep 2026
floorcast_set_ai_policy
removed 2 Sep 2026
floorcast_set_feature_availability
removed 2 Sep 2026
floorcast_set_feature_enabled
removed 2 Sep 2026
floorcast_unpush
removed 2 Sep 2026
ic_activity_get_recent
removed 2 Sep 2026
ic_admin_agent_audit_search
removed 2 Sep 2026
ic_admin_agent_client_list
removed 2 Sep 2026
ic_admin_agent_client_register
removed 2 Sep 2026
ic_admin_agent_client_revoke
removed 2 Sep 2026
ic_admin_approve_endpoint
removed 2 Sep 2026
ic_admin_approve_event
removed 2 Sep 2026
ic_admin_approve_highlight
removed 2 Sep 2026
ic_admin_approve_key_request
removed 2 Sep 2026
ic_admin_approve_ownership
removed 2 Sep 2026
ic_admin_approve_tier_request
removed 2 Sep 2026
ic_admin_deny_key_request
removed 2 Sep 2026
ic_admin_deny_tier_request
removed 2 Sep 2026
ic_admin_funko_grant
removed 2 Sep 2026
ic_admin_funko_restore
removed 2 Sep 2026
ic_admin_funko_takedown
removed 2 Sep 2026
ic_admin_leaderboard_inspect
removed 2 Sep 2026
ic_admin_list_feedback
removed 2 Sep 2026
ic_admin_list_members
removed 2 Sep 2026
ic_admin_list_pending_endpoints
removed 2 Sep 2026
ic_admin_list_pending_events
removed 2 Sep 2026
ic_admin_list_pending_highlights
removed 2 Sep 2026
ic_admin_list_pending_key_requests
removed 2 Sep 2026
ic_admin_list_pending_ownership
removed 2 Sep 2026
ic_admin_list_pending_tier_requests
removed 2 Sep 2026
ic_admin_list_recent_startup_content
removed 2 Sep 2026
ic_admin_reject_endpoint
removed 2 Sep 2026
ic_admin_reject_event
removed 2 Sep 2026
ic_admin_reject_highlight
removed 2 Sep 2026
ic_admin_reject_ownership
removed 2 Sep 2026
ic_admin_resolve_feedback
removed 2 Sep 2026
ic_admin_takedown_startup_content
removed 2 Sep 2026
ic_agent_directory_lookup
removed 2 Sep 2026
ic_agent_inbox_block
removed 2 Sep 2026
ic_agent_inbox_get_thread
removed 2 Sep 2026
ic_agent_inbox_list_blocks
removed 2 Sep 2026
ic_agent_inbox_list_threads
removed 2 Sep 2026
ic_agent_inbox_reply
removed 2 Sep 2026
ic_agent_inbox_send_envelope
removed 2 Sep 2026
ic_agent_inbox_unblock
removed 2 Sep 2026
ic_agent_inbox_undo
removed 2 Sep 2026
ic_agent_outbox_list
removed 2 Sep 2026
ic_agent_policy_get
removed 2 Sep 2026
ic_agent_policy_set
removed 2 Sep 2026
ic_capabilities
removed 2 Sep 2026
ic_context_get
removed 2 Sep 2026
ic_directory_search
removed 2 Sep 2026
ic_endpoint_get
removed 2 Sep 2026
ic_endpoint_register
removed 2 Sep 2026
ic_endpoint_search
removed 2 Sep 2026
ic_endpoint_set_listed
removed 2 Sep 2026
ic_events_get
removed 2 Sep 2026
ic_events_get_live
removed 2 Sep 2026
ic_events_list_upcoming
removed 2 Sep 2026
ic_events_next
removed 2 Sep 2026
ic_events_request
removed 2 Sep 2026
ic_events_rsvp
removed 2 Sep 2026
ic_feedback_get_status
removed 2 Sep 2026
ic_feedback_list_mine
removed 2 Sep 2026
ic_feedback_submit
removed 2 Sep 2026
ic_files_get
removed 2 Sep 2026
ic_files_grant
removed 2 Sep 2026
ic_files_list
removed 2 Sep 2026
ic_files_put
removed 2 Sep 2026
ic_files_update
removed 2 Sep 2026
ic_folder_create
removed 2 Sep 2026
ic_folder_get
removed 2 Sep 2026
ic_folder_grant
removed 2 Sep 2026
ic_folders_list
removed 2 Sep 2026
ic_folder_update
removed 2 Sep 2026
ic_funko_get
removed 2 Sep 2026
ic_funko_get_mine
removed 2 Sep 2026
ic_funko_progress
removed 2 Sep 2026
ic_funko_set_public
removed 2 Sep 2026
ic_get_my_membership
removed 2 Sep 2026
ic_get_my_workshop_key
removed 2 Sep 2026
ic_get_my_zai_key
removed 2 Sep 2026
ic_get_my_zai_key_usage
removed 2 Sep 2026
ic_hack_admin_decide_application
removed 2 Sep 2026
ic_hack_admin_list_applications
removed 2 Sep 2026
ic_hack_admin_phase
removed 2 Sep 2026
ic_hack_admin_role
removed 2 Sep 2026
ic_hack_application_form
removed 2 Sep 2026
ic_hack_application_status
removed 2 Sep 2026
ic_hack_apply
removed 2 Sep 2026
ic_hack_bounty_post
removed 2 Sep 2026
ic_hack_chat_moderate
removed 2 Sep 2026
ic_hack_chat_post
removed 2 Sep 2026
ic_hack_chat_read
removed 2 Sep 2026
ic_hack_checkin
removed 2 Sep 2026
ic_hack_credits_board
removed 2 Sep 2026
ic_hack_credits_list
removed 2 Sep 2026
ic_hack_credits_mark
removed 2 Sep 2026
ic_hack_get
removed 2 Sep 2026
ic_hack_judge_list
removed 2 Sep 2026
ic_hack_judge_score
removed 2 Sep 2026
ic_hack_me
removed 2 Sep 2026
ic_hack_my_feedback
removed 2 Sep 2026
ic_hack_photo_review
removed 2 Sep 2026
ic_hack_photos_list
removed 2 Sep 2026
ic_hack_photos_mine
removed 2 Sep 2026
ic_hack_photo_submit
removed 2 Sep 2026
ic_hack_register
removed 2 Sep 2026
ic_hack_results
removed 2 Sep 2026
ic_hack_roster
removed 2 Sep 2026
ic_hack_sign_nda
removed 2 Sep 2026
ic_hack_submit
removed 2 Sep 2026
ic_hack_team_create
removed 2 Sep 2026
ic_hack_team_join
removed 2 Sep 2026
ic_hack_team_leave
removed 2 Sep 2026
ic_hack_team_list
removed 2 Sep 2026
ic_hack_team_update
removed 2 Sep 2026
ic_hack_withdraw
removed 2 Sep 2026
ic_headsets_admin_clear_oos
removed 2 Sep 2026
ic_headsets_admin_force_return
removed 2 Sep 2026
ic_headsets_admin_list_active_lends
removed 2 Sep 2026
ic_headsets_admin_list_open_incidents
removed 2 Sep 2026
ic_headsets_admin_mark_oos
removed 2 Sep 2026
ic_headsets_admin_resolve_incident
removed 2 Sep 2026
ic_headsets_attest_member
removed 2 Sep 2026
ic_headsets_checkout
removed 2 Sep 2026
ic_headsets_check_waiver
removed 2 Sep 2026
ic_headsets_get_attestation_status
removed 2 Sep 2026
ic_headsets_get_my_lend
removed 2 Sep 2026
ic_headsets_get_unit
removed 2 Sep 2026
ic_headsets_list_inventory
removed 2 Sep 2026
ic_headsets_mark_sop_complete
removed 2 Sep 2026
ic_headsets_report_damage
removed 2 Sep 2026
ic_headsets_return
removed 2 Sep 2026
ic_headsets_sign_waiver
removed 2 Sep 2026
ic_health
removed 2 Sep 2026
ic_leaderboard_connect_github
removed 2 Sep 2026
ic_leaderboard_get_board
removed 2 Sep 2026
ic_leaderboard_get_status
removed 2 Sep 2026
ic_leaderboard_set_optin
removed 2 Sep 2026
ic_membership_set_profile
removed 2 Sep 2026
ic_membership_upload_photo
removed 2 Sep 2026
ic_prints_bed_specs
removed 2 Sep 2026
ic_prints_cancel
removed 2 Sep 2026
ic_prints_confirm_handoff
removed 2 Sep 2026
ic_prints_find_by_origin
removed 2 Sep 2026
ic_prints_get
removed 2 Sep 2026
ic_prints_handoff_status
removed 2 Sep 2026
ic_prints_list
removed 2 Sep 2026
ic_prints_submit
removed 2 Sep 2026
ic_prints_submit_on_behalf
removed 2 Sep 2026
ic_prints_update
removed 2 Sep 2026
ic_request_tier
removed 2 Sep 2026
ic_request_workshop_key
removed 2 Sep 2026
ic_request_zai_key
removed 2 Sep 2026
ic_research_ask
removed 2 Sep 2026
ic_research_submit
removed 2 Sep 2026
ic_resources_book
removed 2 Sep 2026
ic_resources_list
removed 2 Sep 2026
ic_rooms_add_channel
removed 2 Sep 2026
ic_rooms_create
removed 2 Sep 2026
ic_rooms_join
removed 2 Sep 2026
ic_rooms_list
removed 2 Sep 2026
ic_rooms_read
removed 2 Sep 2026
ic_rooms_send
removed 2 Sep 2026
ic_startup_list
removed 2 Sep 2026
ic_startup_post_news
removed 2 Sep 2026
ic_startup_request_ownership
removed 2 Sep 2026
ic_startup_update_profile
removed 2 Sep 2026
ic_token_verify
removed 2 Sep 2026
ic_transcribe_get
removed 2 Sep 2026
ic_transcribe_list
removed 2 Sep 2026
ic_transcribe_status
removed 2 Sep 2026
ic_transcribe_submit
removed 2 Sep 2026

Endpoints

URLTransportStateLatencyChecked
https://www.immersivecommons.com/api/mcp streamable-http answering 48 ms 2 min ago

Alternatives to Immersive Commons

same job, measured the same way
AIURION Agentic 3D Printing — San Francisco
by aiurion

Quote, purchase, and track custom 3D prints from AIURION in San Francisco.

7 tools answering
Agent Commons
by algo-ai

Public and private rooms for agents, with messages, files, search, and resumable events.

93 tools answering
Pinsvit
by pinsvit

Find and book local businesses on the Pinsvit map; discover and create posts, events and comments.

11 tools answering
Compliance
by rulemesh

Engineered GDPR compliance for engineers and AI agents: pull rules, implement, submit evidence.

answering
Bot Rooms — Agent Conversations
by flath12

Agent-to-agent chat: find rooms, read messages, post and reply.

14 tools answering
agent-check
by basenull

Process monitoring for AI agents: start runs, submit per-task evidence, complete runs.

answering
BusyBoard
by busyboard

Merged free/busy, find mutual time, propose bookings with human approval. Never event contents.

answering
Salonrunner MCP
by topness-msft

Self-hosted MCP to find, book, and cancel salon appointments via SalonRunner.

42 installs/wk local only

Immersive Commons — questions

Answers built from our own checks of this server.

What can Immersive Commons do?
It exposes 22 tools, read directly from the server on our last check. Among them: ic_donate, ic_donations_total, ic_forms_get, ic_forms_list, ic_forms_my_submission, ic_forms_submit and 16 more. The full list with descriptions is on this page — we take it from the server itself via tools/list, not from a README. How MCP servers expose tools in the first place →
What is Immersive Commons mostly used for?
Its tools cluster around signal, forms and scheduling. That is what this server is built to work with — the grouping comes from the actual tool names, not from a category we assigned.
Is Immersive Commons working right now?
We send a real MCP handshake every 15 minutes. Over the last 24 hours 16 of 92 checks got a reply (17.4%), average response time 969 ms. The bar chart above shows every period we have measured.
Did Immersive Commons ever remove tools?
Yes. floor10_extract_event_metadata, floor10_get_my_floor_member, floor10_list_claimable_events, floor10_list_my_pending and 180 more are no longer exposed — we recorded the date each one disappeared. A tool vanishing usually means a breaking change for anything that depended on it.
The registry lists Immersive Commons as active — why does it not respond?
The official MCP registry stores what the author submitted; it does not verify that the server still runs. We check the endpoint ourselves, and this one does not answer. Catalogues that copy the registry without checking will show it as working.
How do I connect Immersive Commons?
Copy the ready config from this page — we generate it for Claude Code, Claude Desktop, Codex, Cursor and VS Code, each with the file path that client actually reads. It is a remote server, so there is nothing to install — the client connects to the address.
Does Immersive Commons need an API key?
No. Immersive Commons completed a full MCP handshake with us as an anonymous client and listed its tools without asking for anything. All 22 of them are readable on this page. This is what we observed, not what the docs claim.
How fast is Immersive Commons?
It answers our handshake in 969 ms on average, which is faster than 11% of all working MCP servers we measure. That is on the slow side — worth knowing if the tool sits inside an interactive loop. The comparison comes from our own checks across the whole registry, every 15 minutes.
Is Immersive Commons open source?
Yes — it is published under the MIT licence, written in Python, 0 stars on GitHub and 1 open issue. The source link is on this page, so you can read exactly what it does with your data before you connect it.