Synaccess Cloud MCP with Claude Code
This guide explains how to connect Claude Code directly to Synaccess Cloud MCP. This is useful for developers, operators, and integrators who want to inspect Synaccess Cloud CMP data from Claude Code without building a Slack integration first.When to Use This Option
Use this option when:
- You want to test Synaccess Cloud MCP from a terminal.
- A developer or operator needs direct MCP access.
- You want to validate tool behavior before wiring Slack or another application.
- You are troubleshooting Synaccess MCP authentication, scopes, or tool responses.
How It Works
Claude Code
-> Synaccess Cloud MCP
-> Synaccess Cloud CMP data
-> Claude Code responseClaude Code connects to the remote Synaccess MCP endpoint using HTTP and sends your Synaccess Cloud Personal Access Token as a bearer token.
Prerequisites
Before starting, make sure you have:
-
Claude Code installed.
-
A Synaccess Cloud account with access to the devices you want to query.
-
MCP access enabled for your Synaccess enterprise.
-
A Synaccess Cloud Personal Access Token.
-
A deployed Synaccess Cloud MCP endpoint:
https://<synaccess-mcp-host>/mcp
Your token can only access the devices and data that your Synaccess Cloud account can access.
Create a Personal Access Token
- Sign in to Synaccess Cloud.
- Open your user or account settings.
- Go to API Access.
- Create a new Personal Access Token.
- Copy the token when it is shown.
Store the token securely. Synaccess Cloud only shows the full token when it is created.
Recommended Setup: Environment Variable
Use an environment variable so the PAT is not written directly into prompts or project files.
export SYNACCESS_PAT="<your Synaccess Cloud Personal Access Token>"Add the MCP server with JSON:
claude mcp add-json --scope user synaccess-cloud \
'{"type":"http","url":"https://<synaccess-mcp-host>/mcp","headers":{"Authorization":"Bearer ${SYNACCESS_PAT}"}}'The single quotes keep ${SYNACCESS_PAT} from being expanded by your shell when the config is written. Claude Code can expand it when it starts.
Before starting Claude Code in a new shell, export the token:
export SYNACCESS_PAT="<your Synaccess Cloud Personal Access Token>"
claudeQuick Local Setup
For a fast one-machine test, you can add the token directly:
claude mcp add \
--transport http \
--scope user \
--header "Authorization: Bearer <your Synaccess Cloud Personal Access Token>" \
synaccess-cloud \
https://<synaccess-mcp-host>/mcpThis is convenient, but it stores the resolved token in your local Claude Code configuration. Prefer the environment-variable setup for regular use.
Project-Level Setup
Use a project-level .mcp.json only when everyone working in that project should have the Synaccess MCP server available. Keep each user's token in their own shell environment.
{
"mcpServers": {
"synaccess-cloud": {
"type": "http",
"url": "https://<synaccess-mcp-host>/mcp",
"headers": {
"Authorization": "Bearer ${SYNACCESS_PAT}"
}
}
}
}Do not commit real tokens to .mcp.json.
Verify the Connection
Start Claude Code:
claudeUse:
/mcpConfirm that synaccess-cloud is connected.
Then try:
List my Synaccess devices and summarize their connection status.or:
Get a fleet summary from Synaccess Cloud.Security Checklist
- Do not paste PATs into prompts.
- Do not commit PATs to
.mcp.json, shell history, or project files. - Prefer environment variable expansion for regular use.
- Use a PAT that belongs to the operator who needs access.
- Delete or rotate tokens that are no longer needed.
- Remember that MCP access is still bounded by Synaccess Cloud user permissions and enterprise MCP access.
Troubleshooting
Claude Code says authentication failed
Check that:
-
SYNACCESS_PATis exported in the same shell where Claude Code starts. -
The MCP URL ends with
/mcp. -
The config uses
type: "http". -
The Authorization header is exactly:
Bearer <token> -
The token is active in Synaccess Cloud.
-
MCP access is enabled for your Synaccess enterprise.
Test the Synaccess token directly
Use:
curl -sS -i \
"https://cloud.synaccess.com/v1/auth/me" \
-H "Authorization: Bearer ${SYNACCESS_PAT}"A working token should return 200.
Test the MCP endpoint directly
Use:
curl -sS -i \
-X POST "https://<synaccess-mcp-host>/mcp" \
-H "Authorization: Bearer ${SYNACCESS_PAT}" \
-H "Content-Type: application/json" \
--data '{}'If authentication fails, the response should include an error description that helps identify whether the token, enterprise MCP access, or scopes are the issue.
Claude Code still uses an old token
Remove and re-add the server:
claude mcp remove synaccess-cloud
export SYNACCESS_PAT="<your new Synaccess Cloud Personal Access Token>"
claude mcp add-json --scope user synaccess-cloud \
'{"type":"http","url":"https://<synaccess-mcp-host>/mcp","headers":{"Authorization":"Bearer ${SYNACCESS_PAT}"}}'Then restart Claude Code and check /mcp again.
References
- Claude Code MCP setup: https://code.claude.com/docs/en/mcp