Show HN: Hinge MCP An unofficial TypeScript Model Context Protocol server for Hinge accounts, hinge-mcp 0.2.0, exposes 23 tools, three resources, one resource template, three prompts and prompt-argument completion, with an optional raw tool bringing the total to 24. Built on the official MCP TypeScript SDK 2.1.0, the compiled CLI is tested with the 2026-07-28 protocol and legacy clients over local stdio or Streamable HTTP with an optional static bearer token or OAuth resource-server authentication, and requires Node.js 22 or 24. The project states it is unaffiliated with Hinge, Match Group, Sendbird, OpenAI or Anthropic, that the Hinge API is reverse engineered and can change independently, and that users should only use an account they control and review Hinge's terms before use. A TypeScript Model Context Protocol https://modelcontextprotocol.io/ server for your own Hinge account. It exposes 23 tools, three resources, one resource template, three prompts, and prompt-argument completion . It runs locally over stdio , or over Streamable HTTP with an optional static bearer token or OAuth resource-server authentication. The optional raw tool brings the total to 24. Uses the official MCP TypeScript SDK 2.1.0 . The compiled CLI is tested with the 2026-07-28 protocol and legacy clients , over both transports. The SDK handles protocol framing, discovery/initialization, negotiation, schemas, and errors. This project is unofficial and unaffiliated with Hinge, Match Group, Sendbird, OpenAI, or Anthropic. The Hinge API is reverse engineered and can change independently of this server. Use only an account you control. Review Hinge's terms before use. Requirements: Node.js 22 or 24 , npm, and a Hinge account for live use. Windows, macOS, and Linux are covered by CI. git clone https://github.com/Kuberwastaken/hinge-mcp.git cd hinge-mcp npm ci npm run build node mcp/dist/cli.js --help Configure your MCP host to launch node with the absolute path to mcp/dist/cli.js . The host owns stdin/stdout; starting the CLI in a terminal without an MCP client will simply wait for protocol messages. Do not use npm start as the host's stdio command because npm can print non-protocol banners. Start with HINGE MCP READ ONLY=1 if you only want account reads. Login and logout remain available in that mode. No login or network request occurs just from discovering tools. No npm release is implied by this repository. Do not assume npx hinge-mcp installs this fork. To install the exact code you built: npm pack --workspace mcp --pack-destination . npm install -g ./hinge-mcp-0.2.0.tgz hinge-mcp --version The tarball contains the compiled server, bundled local SDK, TypeScript declarations, README and its hero image, the complete agent guide, and MIT license. It does not need this checkout or a file: dependency at runtime. Rebuild before packing after source changes. These configurations follow the linked vendors' official documentation. Automated tests exercise the wire protocols with official SDK clients; they do not claim that every vendor application's UI has been manually tested. Hosts differ in whether they display resources, prompts, or completion. The tools work independently of those optional host interfaces. Use this stdio entry in Claude Desktop's developer configuration or Cursor's .cursor/mcp.json / ~/.cursor/mcp.json . Replace the path; forward slashes also work on Windows C:/path/to/hinge-mcp/mcp/dist/cli.js . { "mcpServers": { "hinge": { "command": "node", "args": "/absolute/path/to/hinge-mcp/mcp/dist/cli.js" , "env": { "HINGE PHONE NUMBER": "+15555550123", "HINGE MCP READ ONLY": "1" } } } } Restart/reload the host and run hinge session status . Cursor also supports HTTP with an Authorization header; see Cursor MCP documentation https://cursor.com/docs/mcp . claude mcp add --env HINGE PHONE NUMBER=+15555550123 HINGE MCP READ ONLY=1 --transport stdio hinge -- node /absolute/path/to/hinge-mcp/mcp/dist/cli.js See Claude Code MCP setup https://code.claude.com/docs/en/mcp . Keep host options before -- . Add this to ~/.codex/config.toml : mcp servers.hinge command = "node" args = "/absolute/path/to/hinge-mcp/mcp/dist/cli.js" startup timeout sec = 20 tool timeout sec = 45 mcp servers.hinge.env HINGE PHONE NUMBER = "+15555550123" HINGE MCP READ ONLY = "1" Alternatively, for a running HTTP instance: mcp servers.hinge url = "http://127.0.0.1:3939/mcp" bearer token env var = "HINGE MCP TOKEN" tool timeout sec = 45 Set that variable in the environment of both processes. See official Codex MCP documentation https://developers.openai.com/codex/mcp/ . Create .vscode/mcp.json : { "servers": { "hinge": { "type": "stdio", "command": "node", "args": "${workspaceFolder}/mcp/dist/cli.js" , "env": { "HINGE MCP READ ONLY": "1" } } } } This example assumes the opened folder is this repository. For remote use, set type to http , provide url , and configure headers or OAuth. See VS Code's configuration reference https://code.visualstudio.com/docs/agents/reference/mcp-configuration . Use an HTTPS Streamable HTTP endpoint and the OAuth mode below for hosts that perform OAuth discovery. Register https://your-host.example/mcp in the host's developer MCP/plugin settings and select OAuth. Your authorization provider must support the host's callback URI and client-registration method. Account/organization settings may control access to developer integrations. For API callers or hosts that accept an explicit bearer header, static-token mode is also available. This is a private deployment option, not an OAuth authorization server . A client that requires an interactive OAuth flow must use OAuth mode. search and fetch return JSON text and matching structured content. Hinge does not provide verified browser-openable URLs for these private records, so this server deliberately omits citation URLs. They work as ordinary tools; they do not manufacture web citations. See OpenAI's MCP integration and citation contract https://developers.openai.com/api/docs/mcp and authentication guidance https://developers.openai.com/plugins/build/auth . Ask your assistant: "Set up my Hinge connection, help me sign in if needed, verify a profile read, then continue my task." Hosts that expose MCP prompts can select setup account ; assistants can read hinge://setup for the full guide. Tool-only hosts receive the essential workflow in server instructions, tool descriptions, and authentication results. AGENTS.md https://github.com/Kuberwastaken/hinge-mcp/blob/main/AGENTS.md contains instructions for every tool, resource, prompt, and completion workflow, plus setup, permissions, troubleshooting, and repository maintenance. It is included in the installed package and served through MCP, so an assistant does not need access to this checkout. The assistant checks the current session first, asks only for missing details, and reuses an existing session by path when possible. Otherwise it guides SMS login and any email challenge, then calls hinge me to verify a live read. There is no API key for the user to find and no need to paste token JSON. A local session path must exist on the machine running the server. If an assistant has a connected SMS/email tool, the guide permits retrieving the matching code only with specific user authorization for that account and login. The Hinge MCP server itself cannot read SMS/email. Manual entry remains available; codes passed through chat/tool arguments may be retained by the chosen host. The guide does not grant inbox access or authorize unrelated account writes. Fetching setup instructions has no side effects. A new login sends SMS and clears prior local login state, so the guide tells assistants to establish login intent and avoid repeated sends. It also distinguishes the endpoint's bearer token/OAuth from the saved Hinge session, covers unsupported Google/Apple login, and prevents fixture tests being presented as live verification. 1. Call hinge session status . loggedIn is a local expiry check , not proof that Hinge still accepts the token. Use hinge me to verify an existing session remotely. 2. Call hinge login start with phoneNumber in E.164 format, or set HINGE PHONE NUMBER . This sends an SMS. Starting a new login clears the previous local session state. 3. Call hinge login verify otp with the numeric SMS code. 4. If the result has status: "email verification required" , pass its caseId and the emailed code to hinge login verify email . 5. Call hinge me . After restart, the saved session loads automatically. OTP tools are available across clients and do not require elicitation support. Codes entered into tools are visible to your chosen host; don't place them in source files or issue reports. Session tokens are never intentionally returned by authentication tools. hinge logout removes the configured session file and clears tokens, device state, in-memory recommendations, and the prompt cache. It does not revoke the session at Hinge. Log out before changing to another phone number. A configured phone that conflicts with a saved session stops startup. The default session file is ~/.hinge-mcp/session.json . Writes use an exclusive temporary file and atomic rename, with POSIX mode 0600 and newly created directories 0700 . Windows permissions follow filesystem ACLs: use a private user directory. Files are not encrypted at rest . Tokens travel to the upstream Hinge/Sendbird services to authenticate requests; requested account data travels back to your MCP host. Use one process per account/session file . To share a process across clients, use HTTP. The operation queue coordinates requests within that process, not across independent processes. This is a single-account server, not a multi-tenant hosting service. PowerShell: js $env:HINGE MCP TOKEN = node -e "console.log require 'node:crypto' .randomBytes 32 .toString 'hex' " $env:HINGE MCP READ ONLY = '1' node mcp/dist/cli.js --http 3939 POSIX shell: js export HINGE MCP TOKEN="$ node -e "console.log require 'node:crypto' .randomBytes 32 .toString 'hex' " " export HINGE MCP READ ONLY=1 node mcp/dist/cli.js --http 3939 Send Authorization: Bearer