Skip to main content
1

Choose your client

Use Claude, ChatGPT, Cursor, or another client that supports remote MCP over Streamable HTTP and OAuth.
2

Add the product endpoint

Enter https://melso.ai/api/mcp. Do not paste a REST API key or personal token into the connection.
3

Sign in and choose a company

Complete Melso’s OAuth screen. Review the company and requested access before authorizing. Each connection is bound to the company chosen at consent.
4

Read the available tools

Ask the client to list Melso tools, then read company context with workspace_status. Tool visibility can vary with company type, plan, membership and connected services.

Reconnect or change access

If authentication expires, let the client refresh its OAuth token or reconnect. To work with a different company, authorize a connection for that company; a tool argument cannot switch an existing grant’s company. A 401 can mean you used the wrong credential type. A 403 can mean company membership or tool access changed. Reconnecting does not grant permissions that your Melso account lacks.

Try a first read

After consent, ask your client: “Read my Melso company context without changing anything.” The client lists tools and calls workspace_status with {"include":["company"]}. The include field is optional; specifying it limits this first read to company context. Successful sections appear by name. The errors object appears only when a requested section could not be read. For a custom client, initialize with the supported 2025-11-25 protocol version for this example and use the access_token from the /oauth/token response in Token exchange. The following Bash subshell disables tracing, reads the token without echoing or exporting it, and sends the header through standard input. Do not use a REST key or add a company header:
The example performs the standard MCP handshake (initialize, then notifications/initialized) before the first tools/call, as every MCP client does. Include the negotiated MCP-Protocol-Version header on every request. A successful JSON-RPC envelope has result; tools return MCP content blocks and may also include structuredContent. For example, this success envelope is trimmed to the company name and kind:
There is no errors field when every requested section succeeds. If the company read fails, the decoded payload can instead be:
Section errors map names to error strings; successful sections remain alongside them when you request more than one. Check for a JSON-RPC error, result.isError and these section errors before relying on a read. See the workspace_status contract and result handling. A 401 requires the correct OAuth flow; a 403 requires checking company access. Use a secret manager for a deployed client.