← Back to integrations

Integration guide

Active

Generic MCP clients + OpenPets

Connect any stdio MCP-capable assistant to OpenPets with the published OpenPets MCP server, safe tools, pet routing, and local desktop IPC.

What this integration does

The Generic MCP integration is for any assistant or editor that can launch a stdio MCP server. Instead of using a dedicated OpenPets setup flow, you add the OpenPets MCP command to your client's MCP configuration.

ToolPurposeSafety model
openpets_statusChecks whether OpenPets is reachable and which pet is targeted.Read-only setup and health check.
openpets_reactChanges the pet reaction without showing text.Use for silent states like thinking, testing, waiting, success, or error.
openpets_sayShows one short visible speech bubble.Rejects long, multiline, code-like, URL/path-like, or secret-looking messages.

Runtime is local. Your MCP client launches @open-pets/mcp, the MCP server uses @open-pets/client, and the client talks to the running OpenPets desktop app over local IPC.

Requirements

  • The OpenPets desktop app must be running for pet updates to work.
  • Your assistant or editor must support stdio MCP servers.
  • Node.js and npm must be available if you use the published npx command.

Generic MCP config

MCP clients use different root keys, but the command and arguments are the important part. Adapt the wrapper shape to your client's MCP format.

Generic stdio MCP serverjson
{
  "mcpServers": {
    "openpets": {
      "type": "stdio",
      "command": "npx",
      "args": ["-y", "@open-pets/mcp@latest"]
    }
  }
}

Some clients use a servers, mcp, or context_servers root instead of mcpServers. Keep the command as npx and the args as ["-y", "@open-pets/mcp@latest"] unless your client requires a different executable format.

Pet routing

By default, the MCP server targets the desktop app's default pet. Add --pet <pet-id> when you want this MCP process to request a specific installed pet.

Target a specific petjson
{
  "mcpServers": {
    "openpets": {
      "type": "stdio",
      "command": "npx",
      "args": ["-y", "@open-pets/mcp@latest", "--pet", "fixer"]
    }
  }
}
  • If the requested pet is available, OpenPets routes this MCP session to that pet.
  • If the requested pet is missing or unavailable, OpenPets falls back safely instead of breaking the assistant.
  • Explicit pet routing uses a short lease so agent pets can clean up automatically.

MCP gives your assistant tools, but instructions teach it how to use those tools without leaking private context into a visible desktop bubble. Add a short rule block wherever your MCP client stores assistant instructions.

OpenPets assistant guidancemd
OpenPets MCP tools may be available.
  • Use openpets_status before using OpenPets or when debugging availability.
  • Use openpets_react for silent state changes like thinking, editing, testing, waiting, success, or error.
  • Use openpets_say only for short visible status messages.
  • Never send code, logs, command output, file paths, URLs, secrets, tokens, user prompts, or private data to openpets_say.
  • Do not spam every internal step.

Test the connection

After your MCP client loads the server, ask it to use OpenPets intentionally:

Test prompttext
Check OpenPets status. If it is available, send a short "connected" message and a waving reaction.

If your client exposes MCP tool calls in a debug panel, you should see openpets_status, openpets_react, and openpets_say.

Safety and behavior

ProtectionBehavior
Short speechopenpets_say accepts messages up to 140 characters.
Single lineMultiline messages are rejected.
No code or logsCode-like text, command output, URLs, file paths, and secret-looking text are rejected.
Best-effort availabilityIf the desktop app is closed, tools return an MCP error instead of crashing your assistant.

Troubleshooting

The MCP tools do not appear

  • Restart or reload your MCP client after changing config.
  • Confirm the client supports stdio MCP servers.
  • Run npx -y @open-pets/mcp@latest --help in a terminal to confirm npm can resolve the package.
  • Check that your config uses the correct root key for your client.

The tools appear but OpenPets is unavailable

  • Open the OpenPets desktop app first.
  • Ask the assistant to call openpets_status.
  • If using --pet, confirm the pet id is installed with the OpenPets desktop app or the OpenPets CLI.

Should I use Generic MCP or a dedicated integration?

Use Claude Code or OpenCode pages when you use those tools; they include dedicated setup flows and managed instructions. Use Generic MCP when your tool supports MCP but OpenPets does not yet have a dedicated setup page for it.

by Alvin