bbody.

Why your coach runs on MCP

Published

The training logic is not in this app. It sits behind it, in a server the app talks to — and so can anything else.

One plan, several front ends

The web app you sign into is a client. The plan, the exercise catalogue, the session history and the decisions about what comes next all live in a separate service that speaks the Model Context Protocol.

The practical consequence is that the app is not the only way in. Connect the same account from an assistant that supports MCP and you are reading and writing the same plan — not a copy, not an export. Log a session in one place and it is there in the other.

Why that is worth the extra moving part

Most fitness apps keep their logic in the app, which means the app is the only thing that can ever use it. Your training history becomes something you can look at but not work with, and getting it anywhere else means an export file that goes stale the moment it is written.

Putting the logic behind a protocol inverts that. Asking a question about your own training in whatever tool you already have open is a normal thing to do, rather than a feature the app has to decide to build.

What it does not change

Your data is in one place and stays there. A second client is another door into the same account, not another copy of your records, and each one authenticates as you before it can read anything.

The app still works with no connection at all. The day's workout is downloaded to the device, sets are recorded locally while you train, and results sync when the connection comes back. Nothing in the protocol requires you to be online between finishing a set and seeing the number.

Adding it to Claude

There is one value you need, and it is the server address: https://api.bbody.app/mcp. Everything else is discovered.

  • Open Settings → Connectors → Add custom connector.
  • Paste https://api.bbody.app/mcp as the server URL. Claude Desktop is the same path.
  • Claude probes the server and offers an authentication choice. Pick “Sign in now”, which should already be detected.
  • Sign in with the same Google account you use in the app — that is what connects the two to one set of records.

Adding it to ChatGPT

ChatGPT reaches remote MCP servers through developer mode, so there is one switch to find first. Labels move around between releases, and availability depends on the plan.

  • Enable Settings → Security and login → Developer mode.
  • Open Plugins, use the plus button, and add a developer-mode connection.
  • Enter https://api.bbody.app/mcp as the MCP server URL. If it asks for a transport, that is Streamable HTTP; for authentication, OAuth.
  • Sign in with the same Google account, then check that the connection lists its tools.

Two things not to paste

Keep /mcp on the end of the address, and do not use the web app's own URL — https://bbody.app/ — as the server. It serves pages, not the protocol, and a client pointed there will fail in a way that looks like the server is down.

Never enter a Google client ID or client secret into either client. The server registers clients itself, so the sign-in flow needs nothing from you beyond the Google account. Anything asking for those credentials is asking for the server's, not yours.

The honest tradeoff

This is more infrastructure than a self-contained app needs. There is a server to run, an authorisation flow per client, and a protocol version to keep up with. For a single user with a single app, none of that would be worth it.

It becomes worth it the moment you want to ask about your own training somewhere other than the app — which, in practice, is most of the time.