MCP Server

How to Integrate your Product / Authenticated MCP with Reo.Dev

This guide explains how to integrate an authenticated MCP server (e.g. your product MCP, sitting behind OAuth or login) with Reo.Dev using the MCP Intent Gateway. The integration is lightweight, non-intrusive, and requires no changes to developer workflows beyond embedding our SDK in your codebase.

circle-info

Looking for the open / docs MCP integration? If your MCP is public and not behind authentication, see the existing How to integrate Docs MCP Gateway with Reo.Devarrow-up-right guide.


Integration Overview


Quickstart

1) Installation

circle-info

Need another language? Python ships first; Node, Go, and other languages support are next. Request an SDK for your stack →arrow-up-right. We prioritise by customer demand.


2) Setup your Reo API key

Generate a Product Usage API key in the Reo.Dev dashboard: [Link]arrow-up-right

Settings → Configurations → API Keys

Expose it as an environment variable in your codebase. Example:


3) Send data to Reo.Dev

You can send two activity types:

  • MCP_IDENTITY_CAPTURE — fire once, at login or first authenticated request, to register the user against your product_id.

  • MCP_TOOL_CALL — fire on every MCP tool invocation, with the tool name, arguments, and any custom fields you want to track.

3.1) Example Payloads

Identity Capture Sample Payload

Tool call sample


4) Constructor parameters

Parameter

Description

Type

Required

Allowed values

activity_type

Reo.Dev supports two activity types. MCP_IDENTITY_CAPTURE registers the authenticated user — fire it during login or on the first authenticated request. MCP_TOOL_CALL logs the tool the user invoked through your MCP server, along with the prompt and arguments.

string

Yes

"MCP_IDENTITY_CAPTURE", "MCP_TOOL_CALL"

user_id

The authenticated user's identifier (e.g. email address).

string

Yes

users email(e.g. [email protected]), linkedin(e.g. https://linkedin.com/in/rachel-smith) or github id(e.g. rachel-smith)

user_id_type

Type of the user identifier. Use "EMAIL" when passing an email address. Valid ID types are - EMAIL, LINKEDIN, GITHUB

string

Yes

EMAIL, LINKEDIN , GITHUB based on user_id entry

product_id

The product or application identifier registered in the REO platform.

string

Yes

Unique slug kind of name for application

meta.prompts

Custom payload. For MCP_TOOL_CALL, include tool and tool_arguments at minimum. Add any custom fields you want to track.

dict

No

JSON payload containing additional metadata of calls being made to MCP took

blocking

When False (default), log_usage() queues the event and returns immediately. Set True only if you need confirmation in-line.

bool

No

True, False


5) Supported environment variables

Variable

Role

Required

REO_API_KEY

Auth key for the gateway. Required unless you pass api_key to the constructor.

Yes

REO_CENSUS_MCP_ENDPOINT

Override the default ingest URL (for staging or self-hosted setups).

No

REO_PRODUCT_USAGE_USER_AGENT

Payload user_agent fallback

No

PACKAGE_TRACKER_VERBOSE

Debug prints to stderr

No

PACKAGE_TRACKER_ANALYTICS / DO_NOT_TRACK

Control when to activate or deactivate the package at env level

No


Configure Data in Reo.Dev

Reo.Dev needs a metric definition for each activity_type you send so your events are parsed and indexed correctly.

Navigate to Settings → Configurations → Product Usage Metrics: [Link]arrow-up-right

Create the two metrics below exactly as shown:

Product Usage Metrics screen with MCP_TOOL_CALL and MCP_IDENTITY_CAPTURE configured in Reo.Dev UI.

Metric name

Mode

Meta parameters

MCP_TOOL_CALL

Single

tool (Text / String), tool_arguments (Text / String)

MCP_IDENTITY_CAPTURE

Single


Troubleshooting

  • Requests failing? Verify your routing forwards traffic to the Reo.Dev gateway URL.

  • Ensure HTTPS is enabled on your branded MCP endpoint.

  • Confirm no auth middleware is blocking proxy requests at the gateway layer — auth should run inside your MCP server, not at the proxy.

  • SDK issues: confirm REO_API_KEY is set in your runtime environment

  • SDK calls are non-blocking by design — failures will not break MCP responses, but they are logged. Check your application logs for reo.mcp-gateway entries.

For additional help, contact your assigned account manager or write to us at [email protected]envelope.


FAQs

1. What if our SDK language isn't supported?

We launch with Python and support for more languages & frameworks is coming soon. Request it via this formarrow-up-right. We prioritise new SDKs by customer demand.

2. Where exactly do we call the SDK in our code?

  1. At the entry point of your MCP request handler, after the user's identity is resolved.

  2. Entry of tool call

3. Does the SDK add latency to MCP responses?

No. It is a non-blocking call and posts to Reo.Dev asynchronously.

Last updated

Was this helpful?