MCP Server

Noemic

app.noemic/noemic
Social Media Auth required MCP 2025-11-25

What this MCP does

Researches relevant forecasting wagers and counterparties and prepares private wager drafts for user publication.

begin_sign_in
Open secure Noemic sign-in
Start the browser handoff required for personalized network reads or saving an unpublished wager draft. Show only signInUrl; keep requestId and pollSecret private. Never ask for credentials in chat.
Input schema
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'properties': {}}
explain_noemic
Explain Noemic and its trust boundaries
Public, read-only explanation of Noemic's open direct wagering network, source provenance, human approval, and no-custody boundaries. Use when a person asks what Noemic is, why it can be trusted, or how matching works.
Read only Idempotent
Input schema
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'properties': {}}
find_counterparties
Find relevant counterparties
Secondary, read-only research for when the user explicitly asks to find a person for a concrete falsifiable forecast or disagreement, optionally anchored to an existing draft offer. Do not call proactively: the default wagering path recommends open wagers or useful questions instead of people. Results cite only scope-authorized evidence behind each match; weak results are clearly labeled.
Read only Idempotent
Input schema
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['sessionToken', 'conversationContext', 'explicitUserRequest'], 'properties': {'limit': {'type': 'integer', 'maximum': 5, 'minimum': 1}, 'offerId': {'type': 'string', 'minLength': 1}, 'sessionToken': {'type': 'string', 'minLength': 16, 'description': 'The private session token returned by finish_sign_in. Reuse it privately and never show it to the user.'}, 'conversationContext': {'type': 'string', 'maxLength': 50000, 'minLength': 1, 'description': 'Only the relevant context from this conversation. Do not claim or imply that Noemic can read any conversation that was not supplied in this call.'}, 'explicitUserRequest': {'type': 'boolean', 'const': True, 'description': 'Confirm that the user directly asked to search for counterparties.'}}}
find_relevant_wagers
Find strongly relevant open wagers
Read-only ranking of open wager offers for the signed-in user. The model may call this proactively when the current conversation contains a concrete falsifiable forecast, measurable disagreement, or explicit desire to wager. Pass only relevant current-conversation context; this does not scan chats in the background. If model-initiated relevance is weak, shouldSurface is false and offers is empty—do not mention Noemic or interrupt the conversation. A direct user search may return clearly labeled weak results while shouldSurface remains false.
Read only Idempotent
Input schema
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['sessionToken'], 'properties': {'limit': {'type': 'integer', 'maximum': 5, 'minimum': 1}, 'sessionToken': {'type': 'string', 'minLength': 16, 'description': 'The private session token returned by finish_sign_in. Reuse it privately and never show it to the user.'}, 'conversationContext': {'type': 'string', 'maxLength': 50000, 'minLength': 1, 'description': 'Only the relevant context from this conversation. Do not claim or imply that Noemic can read any conversation that was not supplied in this call.'}, 'explicitUserRequest': {'type': 'boolean', 'description': 'True only when the user directly asked to search open offers. Leave false for model-initiated ambient checks.'}}}
finish_sign_in
Finish secure Noemic sign-in
Exchange the private requestId and pollSecret after browser approval. Pending means the person has not approved yet; complete returns a private sessionToken. Never expose these secrets.
Input schema
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['requestId', 'pollSecret'], 'properties': {'requestId': {'type': 'string'}, 'pollSecret': {'type': 'string', 'minLength': 32}}}
propose_wager
Fill in a wager for the member to publish
Fill in a wager exactly as the member would on the New wager form, when the user wants to formalize a concrete falsifiable forecast or disagreement. A wager is a title, an optional subtitle, the member's side, and the resolve time. Noemic writes the resolution terms itself and they are the same for every wager, so never ask the user for a decision rule, an evidence source, or void rules, and never put any of them in the title or the subtitle. The result is a private draft plus a publishUrl: the member opens it, sees the completed form, and publishes with one click. The model may suggest this naturally, but must not silently persist a passing remark. An exact source must be linked by an existing sourceRecordId, and an ID, a quote, or provenance must never be invented. This tool never publishes, invites, accepts, charges, escrows, or binds anyone.
Input schema
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['sessionToken', 'title', 'side', 'resolutionAt'], 'properties': {'side': {'enum': ['yes', 'no'], 'type': 'string', 'description': 'Whether the signed-in user takes Yes or No on the title.'}, 'title': {'type': 'string', 'maxLength': 160, 'minLength': 3, 'description': 'The wager as a question or claim a reader takes in at a glance. Nine words or fewer; Noemic refuses longer titles.'}, 'subtitle': {'type': 'string', 'maxLength': 200, 'description': "One line under the title saying what the title means, in the user's words. Optional. Not a decision rule, evidence source, or void rule: Noemic writes those."}, 'resolutionAt': {'type': 'string', 'format': 'date-time', 'pattern': '^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$', 'description': 'The resolve time as ISO 8601 with a timezone offset.'}, 'sessionToken': {'type': 'string', 'minLength': 16, 'description': 'The private session token returned by finish_sign_in. Reuse it privately and never show it to the user.'}, 'stakeDollars': {'type': 'number', 'minimum': 0, 'description': 'Optional proposed stake in US dollars. It is draft text only; Noemic does not charge or hold it.'}, 'sourceRecordId': {'type': 'string', 'minLength': 1, 'description': 'An existing Noemic source record containing the literal source and provenance. Omit when none exists; never fabricate it or substitute a paraphrase.'}}}
Added
find_relevant_wagers
Sept. 17, 2026, 7:57 a.m.
Added
find_counterparties
Sept. 17, 2026, 7:57 a.m.
Added
propose_wager
Sept. 17, 2026, 7:57 a.m.
Added
finish_sign_in
Sept. 17, 2026, 7:57 a.m.
Added
begin_sign_in
Sept. 17, 2026, 7:57 a.m.
Added
explain_noemic
Sept. 17, 2026, 7:57 a.m.