hinge-mcp
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@hinge-mcpshow me my latest Hinge recommendations"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
hinge-ts
Typed browser SDK for Hinge automation, with Hinge REST, Sendbird chat, session persistence, redacted logging, and raw escape hatches.
This package is a TypeScript port of https://github.com/f0rr0/hinge-rs/.
This package is unofficial and is not affiliated with Hinge, Match Group, or Sendbird.
Install
npm install hinge-tsRelated MCP server: Herald
Runtime Model
hinge-ts is browser-first. Full network access runs through your proxy:
browser app owns SDK state, types, persistence, and API calls
proxy performs upstream Hinge and Sendbird requests with SDK-generated headers
proxy relays Sendbird WebSocket frames because browser WebSocket cannot set the required custom handshake headers
Use BrowserFetchTransport only for environments where direct upstream requests
are explicitly allowed.
Login
import {
BrowserStorage,
Email2FAError,
HingeClient,
HingeProxyTransport,
ProxySendbirdRealtimeTransport
} from "hinge-ts";
const proxyToken = "your-short-lived-proxy-token";
const client = HingeClient.builder()
.phoneNumber("+15555550123")
.transport(new HingeProxyTransport({
baseUrl: "/api/hinge-proxy",
headers: { authorization: `Bearer ${proxyToken}` }
}))
.realtimeTransport(
new ProxySendbirdRealtimeTransport({
url: `/api/hinge-proxy/ws/sendbird?token=${encodeURIComponent(proxyToken)}`
})
)
.storage(new BrowserStorage())
.build();
await client.auth.initiateSms();
try {
await client.auth.submitOtp("123456");
} catch (error) {
if (error instanceof Email2FAError) {
await client.auth.submitEmailCode(error.caseId, "654321");
} else {
throw error;
}
}
await client.persistence.saveSession("session.json");Use
await client.persistence.loadSession("session.json");
const recs = await client.recommendations.get();
const me = await client.profiles.me();
const likes = await client.likes.list();
await client.ratings.skip({
subjectId: recs.feeds[0].subjects[0].subjectId,
ratingToken: recs.feeds[0].subjects[0].ratingToken
});
await client.chat.sendMessage({
ays: false,
matchMessage: true,
messageType: "text",
messageData: { message: "hey" },
subjectId: "peer-user-id",
origin: "connection"
});Realtime Chat
const subscription = await client.chat.subscribeEvents();
for await (const event of subscription) {
if (event.kind === "typing") {
console.log(event.event.channelUrl);
}
}Commands:
await client.chat.markRead("channel-url");
await client.chat.typingStart("channel-url");
await client.chat.typingEnd("channel-url");
await client.chat.ackMessage("channel-url", "message-id");
await client.chat.closeWs({ code: 1000, reason: "done" });API Surface
Group | Methods |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Proxy Contract
REST proxy endpoint:
POST /api/hinge-proxy/requestBody:
{
"service": "hinge",
"method": "POST",
"pathOrUrl": "/auth/sms/v2/initiate",
"url": "https://prod-api.hingeaws.net/auth/sms/v2/initiate",
"headers": {},
"body": {},
"responseType": "json"
}Realtime proxy endpoint:
GET /api/hinge-proxy/ws/sendbird?token=...The browser sends a connect payload first. The proxy opens the upstream
Sendbird socket with the provided headers, then relays text frames both ways.
Use an Authorization header for REST calls and a short-lived query token for
the realtime socket.
See docs/proxy.md, docs/deploy.md, and examples.
MCP Server
mcp/ ships hinge-mcp, an MCP server that lets Claude Desktop, Claude Code,
and ChatGPT operate a Hinge account through this SDK. It runs on your machine
over stdio or Streamable HTTP and keeps the session in a local file. See
mcp/README.md.
cd mcp && npm install && npm run build
HINGE_PHONE_NUMBER=+15555550123 node dist/cli.jsDocs
Development
npm install
npm test
npm run pack:dryPublish
npm login
npm test
npm run pack:dry
npm publishprepack builds dist/ automatically.
GitHub Actions publishing:
On npm, open
hinge-tspackage settings.Add a trusted publisher:
provider: GitHub Actions
organization/user:
wrsrshrepository:
hinge-tsworkflow filename:
publish.ymlenvironment name:
npmallowed action:
npm publish
Publish by tagging the package version:
npm version patch
git push origin main --tagsThe workflow runs typecheck, tests, dry pack, checks the tag matches
package.json, then publishes to npm. If that version already exists, the
publish step is skipped instead of failing the run.
The same workflow also publishes a GitHub Packages copy as @wrsrsh/hinge-ts.
It keeps the npmjs package name as hinge-ts, prepares a temporary manifest for
GitHub Packages, and publishes with GITHUB_TOKEN.
Install the GitHub Packages copy with:
npm install @wrsrsh/hinge-ts --registry=https://npm.pkg.github.comLicense
MIT.
This server cannot be deployed
Maintenance
Related MCP Connectors
- QuallaaOAuthcom.quallaa
Talk to your public-facing AI from any MCP client — Claude, ChatGPT, Cursor, Cline, Windsurf.
Remote streamable-HTTP MCP server running on a single Cloudflare Worker. Your assistant gets live Airbnb, Amazon, Booking.com, Google Flights, Maps and Reddit data, social search on X, Instagram and TikTok, the Meta Ad Library, and image/video generation without any keys. Connect your own accounts to let it send WhatsApp or Telegram messages, work an IMAP inbox, manage Meta Ads campaigns and publish to X and LinkedIn. OAuth 2.1 with PKCE; stored credentials are AES-256-GCM encrypted.
Real-time chat hub for AI agents — Claude Code, Cursor, Cline, Codex over MCP or REST.
WHOOP recovery, strain, sleep and workouts in Claude via official WHOOP OAuth. Free, open source.
Related MCP Servers
- FlicenseNot gradedqualityNot gradedmaintenanceBridges STDIO-based MCP clients with SSE-based MCP servers, allowing applications like Claude Desktop to connect to remote MCP servers that use SSE transport.9-
- AlicenseNot gradedqualityFmaintenanceThe self-hosted MCP bridge between Claude Chat and Claude Code.46AGPL 3.0
- FlicenseNot gradedqualityDmaintenanceBridges stdio-based LLM harnesses to OAuth-protected remote MCP servers via Streamable HTTP, handling PKCE browser login and token refresh automatically.3 npm-
- FlicenseNot gradedqualityBmaintenanceExposes the official Anytype MCP server (which only speaks stdio) as a remote Streamable HTTP endpoint, enabling Claude mobile/web to connect securely via bearer-token auth and Tailscale Funnel.3-