{"apiVersion":"v1","directorySlug":"immersivecommons-mcp-227d019013","title":"Immersive Commons","description":"Immersive Commons is a members-run applied-AI lab on Floor 10 of Frontier Tower, San Francisco. Bridging the gap between the digital and the physical. Public kiosk, agent-readable surface.","pageUrl":"https://www.mcpbundles.com/skills/immersivecommons-mcp-227d019013","connectPath":"importable","connectAction":"import_server","catalogListing":false,"bundleSlug":null,"listingKind":"remote_mcp","kind":"provider","transportUrl":"https://www.immersivecommons.com/api/mcp","hostedMcpUrl":null,"toolCount":22,"toolInventoryStatus":"observed","refreshedAt":"2026-11-03T13:26:00.516172+00:00","registryName":"com.immersivecommons/immersivecommons-mcp-227d019013","registryVersion":"2026.11.3","registryEligible":true,"tools":[{"name":"ic_signal_list_issues","description":"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 }> }.","inputSchema":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","properties":{"limit":{"type":"integer","maximum":50,"minimum":1}}},"title":"List THE SIGNAL issues (public)","annotations":{"readOnlyHint":true,"untrustedContentHint":true},"logicalName":"ic_signal_list_issues","displayName":"List THE SIGNAL issues (public)"},{"name":"ic_signal_get_latest","description":"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) }.","inputSchema":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","properties":{"include_stories":{"type":"boolean"}}},"title":"Get the latest SIGNAL issue summary (public)","annotations":{"readOnlyHint":true,"untrustedContentHint":true},"logicalName":"ic_signal_get_latest","displayName":"Get the latest SIGNAL issue summary (public)"},{"name":"ic_donate","description":"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","inputSchema":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","properties":{"tier":{"type":"string","maxLength":64,"minLength":1}}},"title":"Donate USDC to Immersive Commons via x402 (public)","logicalName":"ic_donate","displayName":"Donate USDC to Immersive Commons via x402 (public)","annotations":{"untrustedContentHint":true,"readOnlyHint":true}},{"name":"ic_donations_total","description":"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) }.","inputSchema":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","properties":{"limit":{"type":"integer","maximum":50,"minimum":1}}},"title":"Get the IC donation total + donor wall (public)","annotations":{"readOnlyHint":true,"untrustedContentHint":true},"logicalName":"ic_donations_total","displayName":"Get the IC donation total + donor wall (public)"},{"name":"ic_signal_get_issue","description":"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\") }.","inputSchema":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","required":["slug"],"properties":{"slug":{"type":"string","maxLength":40,"minLength":1}}},"title":"Get a full SIGNAL issue (public)","annotations":{"readOnlyHint":true,"untrustedContentHint":true},"logicalName":"ic_signal_get_issue","displayName":"Get a full SIGNAL issue (public)"},{"name":"ic_signal_get_story","description":"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 }.","inputSchema":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","required":["slug","story_id"],"properties":{"slug":{"type":"string","maxLength":40,"minLength":1},"story_id":{"type":"string","maxLength":80,"minLength":1}}},"title":"Get a single SIGNAL story (public)","annotations":{"readOnlyHint":true,"untrustedContentHint":true},"logicalName":"ic_signal_get_story","displayName":"Get a single SIGNAL story (public)"},{"name":"ic_signal_search","description":"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) }.","inputSchema":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","required":["q"],"properties":{"q":{"type":"string","maxLength":120,"minLength":2},"limit":{"type":"integer","maximum":50,"minimum":1}}},"title":"Search SIGNAL issues (public)","annotations":{"readOnlyHint":true,"untrustedContentHint":true},"logicalName":"ic_signal_search","displayName":"Search SIGNAL issues (public)"},{"name":"ic_news_get","description":"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 —","inputSchema":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","properties":{"q":{"type":"string","maxLength":80,"minLength":2},"limit":{"type":"integer","maximum":25,"minimum":1},"min_velocity":{"type":"integer","maximum":9007199254740991,"minimum":1}}},"title":"Get high-velocity AI news (public)","annotations":{"readOnlyHint":true,"untrustedContentHint":true},"logicalName":"ic_news_get","displayName":"Get high-velocity AI news (public)"},{"name":"ic_presentations_list","description":"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","inputSchema":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","properties":{"limit":{"type":"integer","maximum":200,"minimum":1},"format":{"enum":["deck","slides","video","doc","link"],"type":"string"},"series":{"type":"string","maxLength":60}}},"title":"List Immersive Commons community presentations (public)","annotations":{"readOnlyHint":true,"untrustedContentHint":true},"logicalName":"ic_presentations_list","displayName":"List Immersive Commons community presentations (public)"},{"name":"ic_presentations_get","description":"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? } } wh","inputSchema":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","required":["session_no"],"properties":{"series":{"type":"string","maxLength":60},"session_no":{"type":"integer","maximum":9007199254740991,"minimum":-9007199254740991}}},"title":"Get one Immersive Commons presentation by session (public)","annotations":{"readOnlyHint":true,"untrustedContentHint":true},"logicalName":"ic_presentations_get","displayName":"Get one Immersive Commons presentation by session (public)"},{"name":"ic_funko_catalog","description":"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","inputSchema":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","properties":{"kind":{"enum":["clip","prop","skin","stage","capability"],"type":"string"}}},"title":"List every Funko Me unlock and what earns it (public)","annotations":{"readOnlyHint":true,"untrustedContentHint":true},"logicalName":"ic_funko_catalog","displayName":"List every Funko Me unlock and what earns it (public)"},{"name":"ic_spatial_beta_program","description":"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","inputSchema":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","properties":{}},"title":"What the spatial-computing beta is + the full question catalog (public)","annotations":{"readOnlyHint":true,"untrustedContentHint":true},"logicalName":"ic_spatial_beta_program","displayName":"What the spatial-computing beta is + the full question catalog (public)"},{"name":"ic_spatial_beta_apply","description":"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","inputSchema":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","required":["full_name","email","nda_ack","commit_5_weeks","in_person_sf","profile","building_now","xr_experience","availability"],"properties":{"email":{"type":"string"},"handle":{"type":"string"},"nda_ack":{"type":"boolean"},"profile":{"type":"string"},"full_name":{"type":"string"},"heard_via":{"type":"string"},"availability":{"type":"string"},"building_now":{"type":"string"},"in_person_sf":{"type":"boolean"},"project_link":{"type":"string"},"accessibility":{"type":"string"},"anything_else":{"type":"string"},"xr_experience":{"type":"string"},"commit_5_weeks":{"type":"boolean"}}},"title":"Apply to the spatial-computing beta cohort (public)","logicalName":"ic_spatial_beta_apply","displayName":"Apply to the spatial-computing beta cohort (public)","annotations":{"untrustedContentHint":true,"readOnlyHint":true}},{"name":"ic_spatial_beta_status","description":"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.","inputSchema":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","required":["application_id","claim_token"],"properties":{"claim_token":{"type":"string"},"application_id":{"type":"string"}}},"title":"Check a spatial-beta application's status (public)","annotations":{"readOnlyHint":true,"untrustedContentHint":true},"logicalName":"ic_spatial_beta_status","displayName":"Check a spatial-beta application's status (public)"},{"name":"ic_forms_list","description":"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, beca","inputSchema":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","properties":{}},"title":"List the forms you can see, and what the rest would need (public)","annotations":{"readOnlyHint":true,"untrustedContentHint":true},"logicalName":"ic_forms_list","displayName":"List the forms you can see, and what the rest would need (public)"},{"name":"ic_forms_get","description":"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 lik","inputSchema":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","required":["form_id"],"properties":{"form_id":{"type":"string","maxLength":128,"minLength":1}}},"title":"Read one form's full question catalog, with the reason for each (public)","annotations":{"readOnlyHint":true,"untrustedContentHint":true},"logicalName":"ic_forms_get","displayName":"Read one form's full question catalog, with the reason for each (public)"},{"name":"ic_forms_submit","description":"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 SUB","inputSchema":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","required":["form_id","answers"],"properties":{"answers":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{"anyOf":[{"type":"string"},{"type":"boolean"},{"type":"number"}]}},"form_id":{"type":"string","maxLength":128,"minLength":1}}},"title":"Answer a form on your human's behalf (consequential)","logicalName":"ic_forms_submit","displayName":"Answer a form on your human's behalf (consequential)","annotations":{"untrustedContentHint":true,"readOnlyHint":true}},{"name":"ic_forms_my_submission","description":"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 iss","inputSchema":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","required":["form_id"],"properties":{"form_id":{"type":"string","maxLength":128,"minLength":1},"claim_token":{"type":"string","maxLength":256,"minLength":1},"submission_id":{"type":"string","maxLength":128,"minLength":1}}},"title":"Read your OWN submission to a form","annotations":{"readOnlyHint":true,"untrustedContentHint":true},"logicalName":"ic_forms_my_submission","displayName":"Read your OWN submission to a form"},{"name":"ic_forms_withdraw","description":"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 th","inputSchema":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","required":["form_id"],"properties":{"form_id":{"type":"string","maxLength":128,"minLength":1},"claim_token":{"type":"string","maxLength":256,"minLength":1},"submission_id":{"type":"string","maxLength":128,"minLength":1}}},"title":"Withdraw your OWN submission to a form (consequential, cannot be undone)","logicalName":"ic_forms_withdraw","displayName":"Withdraw your OWN submission to a form (consequential, cannot be undone)","annotations":{"untrustedContentHint":true,"readOnlyHint":true}},{"name":"ic_scheduling_list_meeting_types","description":"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,","inputSchema":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","required":["handle"],"properties":{"handle":{"type":"string","maxLength":64,"minLength":1}}},"title":"List a member's public meeting types (public booking link)","annotations":{"readOnlyHint":true,"untrustedContentHint":true},"logicalName":"ic_scheduling_list_meeting_types","displayName":"List a member's public meeting types (public booking link)"},{"name":"ic_scheduling_get_availability","description":"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","inputSchema":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","required":["handle","meeting_type"],"properties":{"to":{"type":"string","maxLength":40},"tz":{"type":"string","maxLength":64},"from":{"type":"string","maxLength":40},"handle":{"type":"string","maxLength":64,"minLength":1},"meeting_type":{"type":"string","maxLength":64,"minLength":1}}},"title":"Bookable slots for one meeting type, WITH the member's policy","annotations":{"readOnlyHint":true,"untrustedContentHint":true},"logicalName":"ic_scheduling_get_availability","displayName":"Bookable slots for one meeting type, WITH the member's policy"},{"name":"ic_scheduling_manage_booking","description":"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 MO","inputSchema":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","required":["booking_id","cancel_token","action"],"properties":{"start":{"type":"string","maxLength":40},"action":{"enum":["read","cancel","reschedule"],"type":"string"},"reason":{"type":"string","maxLength":600},"booking_id":{"type":"string","maxLength":64,"minLength":8},"cancel_token":{"type":"string","maxLength":200,"minLength":1},"idempotency_key":{"type":"string","maxLength":128,"minLength":8}}},"title":"Read, cancel or reschedule one booking with its cancel token","logicalName":"ic_scheduling_manage_booking","displayName":"Read, cancel or reschedule one booking with its cancel token","annotations":{"untrustedContentHint":true,"readOnlyHint":true}}],"toolSource":"directory_preview","agentAction":"both","installLinks":[{"id":"cursor","label":"Cursor","href":"cursor://anysphere.cursor-deeplink/mcp/install?name=Immersive-Commons&config=eyJ1cmwiOiAiaHR0cHM6Ly93d3cuaW1tZXJzaXZlY29tbW9ucy5jb20vYXBpL21jcCJ9"},{"id":"vscode","label":"VS Code","href":"vscode:mcp/install?%7B%22name%22%3A%22Immersive-Commons%22%2C%22type%22%3A%22http%22%2C%22url%22%3A%22https%3A%2F%2Fwww.immersivecommons.com%2Fapi%2Fmcp%22%7D"},{"id":"vscode-insiders","label":"VS Code Insiders","href":"vscode-insiders:mcp/install?%7B%22name%22%3A%22Immersive-Commons%22%2C%22type%22%3A%22http%22%2C%22url%22%3A%22https%3A%2F%2Fwww.immersivecommons.com%2Fapi%2Fmcp%22%7D"},{"id":"claude-web","label":"Claude.ai","href":"https://claude.ai/customize/connectors?modal=add-custom-connector&connectorName=Immersive+Commons&connectorUrl=https%3A%2F%2Fwww.immersivecommons.com%2Fapi%2Fmcp"},{"id":"codex","label":"Codex","copyText":"codex mcp add \"Immersive-Commons\" --url \"https://www.immersivecommons.com/api/mcp\""},{"id":"chatgpt","label":"ChatGPT","href":"https://www.mcpbundles.com/docs/integrations/chatgpt"}],"catalogUrl":"https://www.mcpbundles.com/api/directory/v1/servers/immersivecommons-mcp-227d019013","callUrl":"https://www.mcpbundles.com/api/directory/v1/servers/immersivecommons-mcp-227d019013/tools/{tool}","mcpServerUrl":"https://www.immersivecommons.com/api/mcp","liveCatalogUrl":"https://www.mcpbundles.com/api/directory/v1/servers/immersivecommons-mcp-227d019013?live=1"}