Skip to content

Connect an MCP client

Vectadyne speaks MCP, so most agent frameworks connect with configuration rather than code. This is rung 0: nothing is stored yet, but the wiring is proven.

VECTADYNE_MCP_URL your tenant's MCP endpoint
VECTADYNE_TOKEN a bearer token for a principal in that tenant

Streamable HTTP, one endpoint, Authorization: Bearer …. No stdio bridge, no proxy, nothing to install.

There is no handshake. No initialize, no session to establish, no state between calls. Every request stands alone.

A strict MCP client that requires an initialize round trip before it will issue tools/list may report the server as unsupported — not because a call failed, but because there is nothing to initialise and it refuses to proceed without one.

If a client fails to attach, check that first. The diagnosis is quick:

Terminal window
curl -s "$VECTADYNE_MCP_URL" -H 'content-type: application/json' \
-d '{"jsonrpc":"2.0","id":1,"method":"server/discover"}'

If that returns a protocol version and your client still will not attach, the client is waiting for a handshake rather than hitting a network problem.

Statelessness is why the endpoint scales horizontally and why a curl one-liner is a complete client — but it does mean a client built around a session lifecycle has assumptions to unlearn.

Most clients take a shape like this:

{
"mcpServers": {
"vectadyne": {
"url": "${VECTADYNE_MCP_URL}",
"headers": { "Authorization": "Bearer ${VECTADYNE_TOKEN}" }
}
}
}

Interpolate from the environment. Do not paste a literal token into a file you will commit.

Terminal window
curl -s "$VECTADYNE_MCP_URL" \
-H 'content-type: application/json' \
-H "authorization: Bearer $VECTADYNE_TOKEN" \
-d '{"jsonrpc":"2.0","id":2,"method":"tools/list"}'

Seven tools. If server/discover works and this returns unauthenticated, your networking is fine and the credential is the problem — which is a much better place to be than not knowing which.

Some clients rewrite tool names to fit their own conventions — dots become underscores, or a prefix is added. The SDKs expose a mapping from an exposed name back to the canonical one for this reason. If you are writing framework glue and a tool call 404s, compare the name your client sent against the canonical seven.

All seven verbs, and server/discover as an unauthenticated health check you can put in a monitor.