Devin
Devin (Cognition) can reach the Datamesh MCP server in three ways:
- Cloud agent, hosted server — Devin’s cloud agent connects to the remote Datamesh endpoint over HTTP. This is the recommended mode for Devin.
- Cloud agent, local server — Devin’s cloud agent runs the Datamesh server itself over stdio, for full read/write. “Local” here means local to Devin’s cloud machine, not your computer.
- Devin CLI (“Devin for Terminal”) — runs the local server on your own machine from a config file.
Devin cloud agent (hosted server)
Section titled “Devin cloud agent (hosted server)”The cloud agent’s MCP servers are managed on the Customize → MCPs tab. Adding a custom server needs the Manage MCP Servers permission; if you don’t have it, ask an organisation admin or use Suggest MCP Integration.
First, store your Datamesh token as a Devin
secret named DATAMESH_TOKEN, so
the token itself isn’t typed into the server form. Then:
- Open Customize → MCPs, choose Add MCP, then Add custom MCP.
- Fill in the form as shown in the table below.
- Click Save, then Test tools. Devin connects and lists the Datamesh tools (such as
search_catalogandquery_data); if the test fails, the error says whether the problem is connectivity, authentication or a timeout.
| Field | Value |
|---|---|
| Server Name | Oceanum Datamesh |
| Icon | Optional |
| Short Description | Search and query Oceanum Datamesh ocean and weather data |
| Transport type | HTTP |
| Server URL | https://mcp.oceanum.io/datamesh |
| Authentication method | Auth Header |
| Header key | X-DATAMESH-TOKEN (replace the default Authorization) |
| Header value | A reference to the DATAMESH_TOKEN secret (see below) |
Alternative — bearer token. The hosted server also accepts a Datamesh token as a bearer credential, so you can leave the header key as the default and use:
| Field | Value |
|---|---|
| Header key | Authorization |
| Header value | Bearer followed by a reference to the DATAMESH_TOKEN secret |
Referencing the secret. Devin’s current MCP documentation says to store
tokens as secrets and reference them from the server configuration, but doesn’t
give the syntax. Devin’s
changelog (28 July 2025)
documents the form $SECRETNAME, so the header value is $DATAMESH_TOKEN (or
Bearer $DATAMESH_TOKEN for the alternative). If the form offers a secret picker
for the header value, use that instead. Either way, click Test tools straight
after saving: a reference that doesn’t resolve shows up immediately as an
authentication error rather than in a later session.
JSON configuration
Section titled “JSON configuration”Devin’s MCP documentation
gives a JSON form of each custom server’s settings for API-based or programmatic
setups; in the web app you enter the same values in the form above. The hosted
Datamesh server in that format is shown below. $DATAMESH_TOKEN stands for the
secret reference described above; in an API or programmatic setup, secret
substitution follows Devin’s API documentation.
{ "transport": "HTTP", "url": "https://mcp.oceanum.io/datamesh", "auth_method": "auth_header", "headers": { "X-DATAMESH-TOKEN": "$DATAMESH_TOKEN" }}For the Devin CLI, which reads JSON config files
directly, the hosted server can be pasted into .devin/mcp_config.local.json:
{ "mcpServers": { "oceanum-datamesh-hosted": { "url": "https://mcp.oceanum.io/datamesh", "transport": "http", "headers": { "X-DATAMESH-TOKEN": "your-datamesh-token" } } }}The Devin CLI also imports MCP servers from other tools’ config files it finds,
such as Cursor’s .cursor/mcp.json and Claude Code’s .mcp.json, so a Datamesh
server already set up for Cursor or
Claude Code is picked up by default (controlled
by the CLI’s read_config_from setting).
Try it
Section titled “Try it”Once saved, start a session and ask Devin to use the server, for example:
Use the Oceanum Datamesh MCP server to find datasources with significant waveheight covering the Hauraki Gulf, and summarise their time coverage andresolution.Devin should call search_catalog to find candidate datasources and
get_datasource_info to read their coverage, then summarise the results. From
there you can ask for a time series at a point, which Devin retrieves with
query_data.
Authentication
Section titled “Authentication”- Auth Header with
X-DATAMESH-TOKEN(orAuthorization: Bearer), as above, is the supported method. - OAuth (“sign in”) is not yet available for Devin. The hosted sign-in flow currently allowlists only Anthropic’s Claude clients, so Devin’s OAuth cannot complete against the Datamesh server until its callback is registered on the Oceanum identity tenant. Contact Oceanum if you need this enabled.
The hosted server is read-only and returns query_data results inline (up to
~50 MB). For larger results, Devin can call export_query, which on the hosted
server returns a time-limited download link to the full result — the link
needs no token, so treat it like a password. The Devin CLI below instead writes
export_query output to a file.
Devin cloud agent (local server)
Section titled “Devin cloud agent (local server)”Use the hosted server unless you need what only the local server offers: write
access, or export_query files written inside Devin’s workspace. A custom
STDIO server runs inside Devin’s cloud sandbox, not on your computer, so:
uvmust be available in Devin’s environment (install it in your Devin environment setup if it isn’t).- The token must reach Devin’s machine. Store it as a Devin secret rather than relying on anything set on your own laptop, and reference it from the server’s environment variables.
export_querywrites its files on Devin’s machine. Ask Devin to commit, upload or otherwise hand back the file if you need it.
- In Customize → MCPs, choose Add MCP, then Add custom MCP.
- Set Server Name to
Oceanum Datamesh (local)and the transport type to STDIO. - Set Command to
uvxand Arguments to--python 3.13 oceanum-mcp datamesh. - Add an environment variable
DATAMESH_TOKENwhose value references the Devin secret created above —$DATAMESH_TOKEN, or the secret picker if the form offers one (see Referencing the secret). - Click Save. Test tools isn’t available for STDIO servers; click Use MCP to start a session that exercises the server.
The equivalent JSON, in the form Devin’s documentation uses, is:
{ "transport": "STDIO", "command": "uvx", "args": ["--python", "3.13", "oceanum-mcp", "datamesh"], "env_variables": { "DATAMESH_TOKEN": "$DATAMESH_TOKEN" }}Here $DATAMESH_TOKEN stands for a reference to the Devin secret named
DATAMESH_TOKEN, in the changelog-documented form described above. The
--python 3.13 argument has uv run the server on Python 3.13 (downloading it
if needed), as some of the server’s dependencies don’t yet install on Python
3.14.
Devin CLI (local server)
Section titled “Devin CLI (local server)”The Devin CLI runs on your own machine and adds MCP
servers from .devin/mcp_config.local.json (gitignored, so your token stays out
of version control). Run the Datamesh server locally over stdio for full
read/write:
{ "mcpServers": { "oceanum-datamesh-local": { "command": "uvx", "args": ["--python", "3.13", "oceanum-mcp", "datamesh"], "env": { "DATAMESH_TOKEN": "your-token-here" } } }}Replace your-token-here with your Datamesh token. This
requires uv on your PATH. The --python 3.13
argument has uv run the server on Python 3.13 (downloading it if needed), as
some of the server’s dependencies don’t yet install on Python 3.14. The local server gives
full read/write and has export_query write results straight to a file on your
machine. Check the server is picked up with devin mcp list. Remote MCP servers
that use OAuth are added instead with devin mcp login <name>.
CLI versions before v3000.3 read MCP servers from the mcpServers key of
.devin/config.local.json instead; newer versions move any entries there to
.devin/mcp_config.local.json automatically.
Keep your token safe
Section titled “Keep your token safe”Your Datamesh token grants access to all of your organisation’s permissioned datasources — including the ability to modify or delete them. Treat it as a secret, and prefer the hosted read-only server for exploratory use.