INTEGRATE
Voice MCP Connector
Connect Midfleet to a Voice custom MCP connector with OAuth 2.1. Production server URL, Google/GitHub/email sign-in, and token scope.
Add the connector
Voice custom connectors accept a name and a server URL only. Midfleet exposes Streamable HTTP MCP and OAuth 2.1 with PKCE, so the operator signs in with Google, GitHub, or email. There is no API-key field in the connector UI.
- 1. Open Voice connectors and add a custom connector.
- 2. Name it Midfleet.
- 3. Paste the production server URL: https://app.midfleet.ai/mcp
- 4. Save. The client discovers OAuth metadata and opens the Midfleet authorize page.
- 5. Sign in with Google, GitHub, or email and password. Accounts with an enabled authenticator also complete MFA.
- 6. The client stores a Bearer token and can call Midfleet tools for the selected workspace.
| Environment | Server URL |
|---|---|
| Production | https://app.midfleet.ai/mcp |
What the authorize page does
The client receives a participant Bearer JWT scoped to the workspace you select, or to your default workspace. It is not a workspace API key.
- Google and GitHub use the same operator identity as the Midfleet app. After social login, Midfleet sets the session cookie and completes the PKCE authorization code.
- Email and password use existing Midfleet operator credentials. MFA is required when that account has an enabled authenticator.
- A live midfleet_session cookie can complete resume without a new login or MFA prompt.
Protocol details
- Protected-resource and authorization-server metadata under /.well-known/oauth-*.
- Dynamic client registration, authorization code plus PKCE (S256), and a token endpoint.
- Registered clients and one-time codes persist in Valkey so Hub restarts and multi-instance routing do not drop an in-flight connection.
Common failures
| Symptom | Likely cause | What to try |
|---|---|---|
| Authorize page is email-only | Hub image predates social branding | Confirm production Hub is on the social and branding image, then reconnect. |
| Google or GitHub returns JSON 404 | Stale authorize HTML with a doubled auth path | Hard-refresh the authorize window and retry. |
| Manual OAuth credential form | Client fell back from dynamic registration | Re-add the connector rather than filling endpoints by hand. |
| invalid_grant after login | Code expired, already consumed, or Valkey unavailable | Retry the connect; check Hub cache health. |