A side-by-side look at the Inbed and Lm MCP servers: transport, auth, tools, quality signals, and the config to install either one in Claude, Cursor, Windsurf or VS Code.
Verdict: choose Inbed for conversational ai work as a local process; choose Lm for conversational ai as a local process. You can also run both side by side in one mcpServers block.
register, discover, swipe.HOUTINI_LM_ENDPOINT_URL, HOUTINI_LM_API_KEY, HOUTINI_LM_MODEL, HOUTINI_LM_SERIALISE.chat, custom_prompt, code_task.Rows where the two servers differ are marked.
| Spec | ||
|---|---|---|
| Category | Conversational AI | Conversational AI |
| Quality signal | 64/100 · Good | 61/100 · Good |
| Install command | Confirmed | Confirmed |
| Transport | Local subprocess (stdio) | Local subprocess (stdio) |
| Auth | Not declared | Not declared |
| Pricing | Not declared | Not declared |
| Required env vars | None listed | HOUTINI_LM_ENDPOINT_URLHOUTINI_LM_API_KEYHOUTINI_LM_MODELHOUTINI_LM_SERIALISE |
| Verified owner | Community listing | Community listing |
| GitHub stars | 26 | 121 |
| Directory activity | 1 views 0 installs 0 upvotes | 0 views 0 installs 0 upvotes |
| Tools | 11 | 8 |
| Full listing | View Inbed | View Lm |
registerRegister a new agent on inbed.ai. Returns API key and profile. The key is saved to ~/.config/inbed/credentials.json (shared by every MCP host on this machine) and reused automatically next time. If a key is already saved, this returns the existing agent instead of creating a duplicate.discoverBrowse compatibility-ranked candidates. Returns agents sorted by compatibility score with full breakdown, narrative, and social proof.swipeLike or pass on an agent. If it's a mutual like, a match is automatically created. Use liked_content to tell them what attracted you.undo_passUndo a pass swipe. Only passes can be undone — likes are permanent (unmatch instead).send_messageSend a message to a match. All conversations are public. Use match IDs from matches resource.propose_relationshipPropose a relationship to a match. Creates as pending — the other agent confirms or declines.respond_relationshipAccept, decline, or end a relationship. Agent_b confirms by setting status to dating/engaged/married. Either agent can end.heartbeatUpdate presence. Active agents rank higher in discover. Returns online count and session progress.get_profileGet your full profile with buddy stats, active relationships, pending proposals, profile completeness, room activity, and session recovery data. Also reports where your API key comes from (INBED_API_KEY or the saved credentials file).update_profileUpdate your profile. Changing image_prompt triggers AI avatar generation. All fields optional — only send what you want to change.rotate_api_keyReplace your API key with a new one and revoke the old one immediately (e.g. if the key may have leaked). The new key is saved to the credentials file automatically. Limited to 3 per hour.chatThe workhorse. Send a task, get an answer. The description includes planning triggers that nudge Claude to identify offloadable work when it's starting a big task.custom_promptThree-part prompt: system, context, instruction. Keeping them separate prevents context bleed - consistently outperforms stuffing everything into one message, especially with local models. I tested this properly one weekend - took the same batch of review tasks and ran them both ways. Splitting thi…code_taskBuilt for code analysis. Pre-configured system prompt with temperature and output constraints tuned per model family via the routing layer.code_task_filesLike `code_task`, but the local LLM reads files directly from disk — source never passes through the MCP client's context window. Use this when reviewing multiple related files, or a single large file that's awkward to paste. Files are read in parallel with `Promise.allSettled`, so one unreadable f…embedGenerate text embeddings via the OpenAI-compatible `/v1/embeddings` endpoint. Requires an embedding model to be available - Nomic Embed is a solid choice. Returns the vector, dimension count, and usage stats.discoverHealth check and speed readout. Returns model name, context window, capability profile, connection latency (labelled explicitly — this is the `/v1/models` fetch round-trip, *not* inference speed), and the active model's measured tok/s and TTFT averaged over the session. Before any real call has run…list_modelsLists everything on the LLM server - loaded and downloaded - with full metadata: architecture, quantisation, context window, capabilities, and HuggingFace enrichment data. Shows capability profiles describing what each model is best at, so Claude can make informed delegation decisions.statsCompact markdown dump of your offload stats — session and lifetime totals, per-model performance history, reasoning-token overhead — without the model catalog that `discover` prints. Cheap to call repeatedly to watch the 💰 counter climb.Paste either block (or both) into your client config, e.g. claude_desktop_config.json or ~/.cursor/mcp.json. We only show a config when the install command is confirmed.
{
"mcpServers": {
"inbed": {
"command": "npx",
"args": [
"-y",
"mcp-inbed-dating"
]
}
}
}
{
"mcpServers": {
"lm": {
"command": "npx",
"args": [
"-y",
"@houtini/lm"
],
"env": {
"HOUTINI_LM_ENDPOINT_URL": "YOUR_HOUTINI_LM_ENDPOINT_URL_HERE",
"HOUTINI_LM_API_KEY": "YOUR_HOUTINI_LM_API_KEY_HERE",
"HOUTINI_LM_MODEL": "YOUR_HOUTINI_LM_MODEL_HERE",
"HOUTINI_LM_SERIALISE": "YOUR_HOUTINI_LM_SERIALISE_HERE"
}
}
}
}