Momentum / MCP docs

    Momentum · Integration docs

    MCP

    Put this organization's live policies into the assistants people already use, so answers and designs follow the real rulebook — not a pasted wiki or whatever the model remembers.

    What it is for

    Cursor, Claude, Codex, and similar clients do not know “no contracts over $2M without CFO” unless you give them a way to fetch it. MCP is that way. An org admin mints a connection in Momentum, someone pastes a config snippet, and the assistant starts calling get_relevant_policies on its own.

    WhoWhat they do with MCP
    Anyone asking an assistant“Can we refund $400?” / “Does a $1.5M loan need a person?” — the answer cites the matching policy.
    Ops, finance, legalSummarize the rulebook for a new hire. Review a planned send before anyone hits send.
    People building agentsWhile writing a workflow, see “pause above $1M” and encode it before production.
    Before you shipAsk for the policy gates that apply to a refunds or lending agent — a checklist from live policy, not Confluence.

    How it helps

    ForceEquals MCP feeds the same Momentum policies into Cursor, Claude, Codex, and similar clients so the model can factor org rules into what it writes or answers.

    User asks Cursor / Claude / Codex something
            │
            ▼
    Client calls ForceEquals MCP  (Bearer fe_mcp_…)
            │
            ▼
    get_relevant_policies returns this org's Momentum policies
            │
            ▼
    The model shapes the answer / code around those rules

    You change a rule in Momentum. The next request uses it. Nothing is fine-tuned into the model.

    Try asking

    Once the client is connected, you do not have to name a tool. Paste any of these:

    Cursor, Claude, Codex, or any connected client

    Can we refund this customer $400?
    Would a $1.5M loan need a person to approve?
    Summarize our policies for someone who just joined.
    Draft a checklist before we ship a refunds agent.
    Review this action: email every overdue account a collections notice.

    Connect once

    Setup lives on the MCP tab: generate a connection, copy the snippet for your client, confirm a call landed. That page has your real host and token. You need admin on a root organization.

    Live setup

    Open the MCP tab

    Admin generates a connection. Developer pastes the config. The assistant starts fetching policies. Last used updates after the first authenticated call.

    Go to MCP →

    Which client

    Same server for every MCP client: Streamable HTTP /api/mcp. Ready-made snippets for common hosts; Codex, Windsurf, VS Code, Inspector, and custom agents use the URL + Bearer tab.

    You useWhat you copy on the MCP tabHow it signs in
    CursorJSON into mcp.json, then reloadA key, shown once
    Claude CodeOne terminal commandA key, shown once
    Claude.ai / DesktopThe URL only — no key in itSign in and Allow an org
    Codex, Windsurf, VS Code, Inspector, otherStreamable HTTP URL + Bearer tokenA key, shown once

    Tools and prompts

    The client can look up this organization's policies. It cannot change them, and it cannot approve work on Feed. Server instructions ask it to call get_relevant_policies every turn and record_mcp_turn_response after the answer; the host decides when to actually call.

    What you wantWhat it uses
    Rules that match this questionget_relevant_policies
    Store this turn's assistant answerrecord_mcp_turn_response
    Every policy, or one by idlist_organization_policies, get_organization_policy
    Find a rule by wordssearch_organization_policies
    Which org is connectedget_organization_info
    Allow / reject / send to a humanPrompt review_action_against_policies
    Explain the rulebookPrompt summarize_org_policies
    Pre-ship gatesPrompt draft_policy_check_checklist

    fe_live_… is the Feed API key for agents that emit events. fe_mcp_… only reads policies. Do not mix them.

    Always check policy

    If the assistant sometimes answers without looking up rules, pin instructions in that product. The snippets below also ask it to send the finished answer back with record_mcp_turn_response so Momentum can store the turn. Cursor and Claude Code examples:

    .cursor/rules/forceequals-policies.mdc

    ---
    description: ForceEquals Momentum — fetch org policies on every request
    alwaysApply: true
    ---
    
    At the start of every user request, call the `get_relevant_policies` tool from the `forceequals` MCP server with the user's request text. Treat the returned organization policies as constraints and considerations for your response. After you finish the user-visible answer, call `record_mcp_turn_response` with that full answer and the `turnId` from get_relevant_policies. Do both automatically without being asked.

    CLAUDE.md

    ## ForceEquals Momentum policies
    
    At the start of every user request, call the `get_relevant_policies` tool from the `forceequals` MCP server with the user's request text. Treat the returned organization policies as constraints and considerations for your response. After you finish the user-visible answer, call `record_mcp_turn_response` with that full answer and the `turnId` from get_relevant_policies. Do both automatically without being asked.

    If something fails

    What you seeWhat to do
    401 / unauthorizedMissing key, Bearer typed twice, extra spaces, the whole JSON pasted where only the key belongs, or a revoked key. Generate a new connection on the MCP tab. Keys start with fe_mcp_. After Claude Allow they look like fe_mcpo_.
    Claude stuck on loginFinish Allow on the org picker. Do not paste fe_mcp_ into the connector URL.
    No orgs on consentYou need admin on a root organization — the same list as the MCP tab.
    Lost the tokenIt cannot be shown again. Revoke and generate a new connection.
    Answers ignore policyAsk again with a concrete action, or add the always-on rule above. Hosts choose when to call tools. Query logging needs get_relevant_policies; the answer is stored only if the host then calls record_mcp_turn_response.