Model Context Protocol (MCP) server for TimeBase
Project description
TimeBase MCP
Prerequisites
Installation
[!TIP] If you're planning to work with both TimeBase Community and Enterprise servers, you can install both editions by replacing
[enterprise]with[all]in the commands below. MCP server will automatically select the correct edition to use based on the connected TimeBase server.Already installed? See Updating an Existing Installation.
[!IMPORTANT] Make sure to replace
<user>and<password>with your Nexus credentials when installing the enterprise edition.
Using pip
Community edition:
python -m pip install "timebase-mcp[community]"
Enterprise edition:
python -m pip install --extra-index-url "https://<user>:<password>@nexus.deltixhub.com/repository/epm-rtc-public-python/simple" "timebase-mcp[enterprise]"
If you get an error about environment being managed externally, follow the uv or pipx instructions instead.
[!WARNING] Do NOT create a virtual environment manually when using pip, as MCP server needs to be globally accessible in PATH. If you want to isolate dependencies, use pipx or uv which handle this automatically.
Using uv
Community edition:
uv tool install -p 3.14 --from "timebase-mcp[community]" timebase-mcp
Enterprise edition:
uv tool install -p 3.14 --index "https://<user>:<password>@nexus.deltixhub.com/repository/epm-rtc-public-python/simple" --from "timebase-mcp[enterprise]" timebase-mcp
Using pipx
Community edition:
pipx install --python 3.14 "timebase-mcp[community]"
Enterprise edition:
pipx install --python 3.14 --pip-args "--extra-index-url https://<user>:<password>@nexus.deltixhub.com/repository/epm-rtc-public-python/simple" "timebase-mcp[enterprise]"
[!NOTE] MCP server will be launched from MCP client (coding agent) automatically, but the installed
timebase-mcpmust be in PATH. After installation you can verify that the server is correctly installed and accessible by running the following command from a new terminal:timebase-mcp -v
Updating an Existing Installation
Use the command for your package manager to update timebase-mcp to the latest available version.
Using pip
Community edition:
python -m pip install --upgrade "timebase-mcp[community]"
Enterprise edition:
python -m pip install --upgrade --extra-index-url "https://<user>:<password>@nexus.deltixhub.com/repository/epm-rtc-public-python/simple" "timebase-mcp[enterprise]"
Using uv
Community edition:
uv tool upgrade -p 3.14 timebase-mcp
Enterprise edition:
uv tool upgrade -p 3.14 --index "https://<user>:<password>@nexus.deltixhub.com/repository/epm-rtc-public-python/simple" timebase-mcp
Using pipx
Community edition:
pipx upgrade --python 3.14 "timebase-mcp"
Enterprise edition:
pipx upgrade --python 3.14 --pip-args "--extra-index-url https://<user>:<password>@nexus.deltixhub.com/repository/epm-rtc-public-python/simple" "timebase-mcp"
After updating, run timebase-mcp -v from a new terminal to verify the installed version and PATH access.
Basic Configuration
For no-auth and basic-auth setups, use these variables in your MCP config:
| Variable | Default value | Description |
|---|---|---|
TIMEBASE_URL |
dxtick://localhost:8011 |
TimeBase connection URL |
TIMEBASE_USERNAME |
None | Username for basic auth |
TIMEBASE_PASSWORD |
None | Password for basic auth |
If your server does not require authentication, set only TIMEBASE_URL.
For more options, including OAuth2, see Advanced Configuration.
MCP Client Configuration
Follow the instructions for your MCP client to configure the server.
VS Code
Create .vscode/mcp.json:
{
"servers": {
"timebase-mcp": {
"type": "stdio",
"command": "timebase-mcp",
"args": [],
"env": {
"TIMEBASE_URL": "dxtick://localhost:8011"
}
}
}
}
Cursor
Click the button to install
Or manually create .cursor/mcp.json
{
"mcpServers": {
"timebase-mcp": {
"type": "stdio",
"command": "timebase-mcp",
"args": [],
"env": {
"TIMEBASE_URL": "dxtick://localhost:8011"
}
}
}
}
Claude Desktop
Available options: Claude Desktop config and MCP Bundle.
MCP Config
Follow the official guide for your OS, for the configuration use the following:
{
"mcpServers": {
"timebase-mcp": {
"command": "timebase-mcp",
"args": [],
"env": {
"TIMEBASE_URL": "dxtick://localhost:8011"
}
}
}
}
MCP Bundle
This currently requires Node.js and uv to be installed.
- Run the following command in this repo to create the bundle:
npx @anthropic-ai/mcpb pack
- In Claude Desktop go to
Settings > Extensions > Advanced settings > Install extensionand select the.mcpbfile generated in step 1.
Claude Code
claude mcp add timebase-mcp --transport stdio --env TIMEBASE_URL='dxtick://localhost:8011' -- timebase-mcp
[!NOTE] This command adds a local-scoped server (current project and user only). There're also
projectanduserscopes, specify them via a--scope local|project|userflag. Check out the official documentation for more details.
Opencode
Add the following to your opencode.jsonc:
{
"$schema": "https://opencode.ai/config.json",
"mcp": {
"timebase-mcp": {
"type": "local",
"command": "timebase-mcp",
"enabled": true,
"environment": {
"TIMEBASE_URL": "dxtick://localhost:8011",
},
},
},
}
Advanced Configuration
Use these variables for configuring the MCP server:
| Variable | Default value | Description |
|---|---|---|
TIMEBASE_URL |
dxtick://localhost:8011 |
TimeBase connection URL |
TIMEBASE_USERNAME |
None | Username for basic auth. Optional for OAuth2; when omitted, defaults to TIMEBASE_OAUTH2_CLIENT_ID |
TIMEBASE_PASSWORD |
None | Password for basic auth. Mutually exclusive with the OAuth2 settings |
TIMEBASE_OAUTH2_TOKEN_URL |
None | OAuth2 token endpoint for auth using the client credentials flow |
TIMEBASE_OAUTH2_CLIENT_ID |
None | OAuth2 client ID |
TIMEBASE_OAUTH2_CLIENT_SECRET |
None | OAuth2 client secret |
TIMEBASE_OAUTH2_SCOPE |
None | Optional space-delimited OAuth2 scopes |
TIMEBASE_OAUTH2_TOKEN_PARAMS |
None | Optional JSON object of extra OAuth2 token form parameters |
MCP_LOG_LEVEL |
INFO |
Log verbosity: DEBUG, INFO, WARNING, ERROR, or CRITICAL |
[!IMPORTANT] Enterprise connections may need extra SSL environment variables that are handled by
dxapi. This includesDXAPI_SSL_TERMINATION,DXAPI_SSL_TRUST_ALL,SSL_CERT_FILE, etc. See dxapi environment variables and SSL configuration.
OAuth2 Client Credentials
OAuth2 works only with the enterprise dxapi client. timebase-mcp uses the client credentials flow and currently supports the client_secret_post token-endpoint authentication method.
Required variables:
TIMEBASE_OAUTH2_TOKEN_URLTIMEBASE_OAUTH2_CLIENT_IDTIMEBASE_OAUTH2_CLIENT_SECRET
Optional variables:
TIMEBASE_USERNAMEto override the default TimeBase username; otherwiseTIMEBASE_OAUTH2_CLIENT_IDis usedTIMEBASE_OAUTH2_SCOPEas a single space-delimited string when multiple scopes are requiredTIMEBASE_OAUTH2_TOKEN_PARAMS
Microsoft Entra ID example configuration:
TIMEBASE_URL=dxtick://example.com:8011
TIMEBASE_OAUTH2_TOKEN_URL=https://login.microsoftonline.com/<tenant-id>/oauth2/v2.0/token
TIMEBASE_OAUTH2_CLIENT_ID=<client-id>
TIMEBASE_OAUTH2_CLIENT_SECRET=<client-secret>
TIMEBASE_OAUTH2_SCOPE=api://example-api/.default
Use TIMEBASE_OAUTH2_TOKEN_PARAMS only if your provider requires extra token fields such as audience, resource, etc. It must be a valid JSON object.
Features
Tools
| Name | Description | Key inputs | Notes |
|---|---|---|---|
list_streams |
List available TimeBase streams with descriptions | None | Read-only stream catalog lookup |
get_stream_schema |
Get the schema of a specific stream | stream_key |
Returns the schema text for the requested stream |
get_stream_time_range |
Get the UTC time range of a specific stream | stream_key |
Returns start and end timestamps |
get_stream_symbols |
Get symbols from a specific stream | stream_key, optional limit, optional cursor |
Returns sorted, paginated symbols. limit can be 1-500 |
get_stream_messages |
Preview the first or last messages from a stream | stream_key, optional reverse, optional count |
Returns up to count JSON-formatted messages. Use reverse to read from the end of the stream |
execute_query |
Execute a TimeBase QQL query | query, optional limit |
Returns a limited preview of result rows. limit can be 1-100 |
compile_query |
Compile a TimeBase QQL query | query |
Returns parser-level diagnostics only (not full semantic/logical validation). error_token is the first unexpected token, which may be after the actual root cause. |
Resources
Some clients (e.g. VS Code) allow users to explicitly add resources to the context.
| URI | Name | Description |
|---|---|---|
timebase://streams |
stream_catalog |
Text resource listing streams and descriptions |
timebase://streams/{stream_key}/schema |
stream_schema |
Resource template exposing a stream schema by key |
Troubleshooting
General
- Green indicator in Cursor's MCP panel means the timebase-mcp server is running and Cursor is connected to it, but it doesn't necessarily mean that timebase-mcp is successfully connected to TimeBase.
Where to find logs?
VS Code
Logs can be found in the output panel (View > Output, then select timebase-mcp from the dropdown).
Cursor
Logs can be found in the Cursor's output panel (View > Output, then select timebase-mcp from the dropdown).
Claude Desktop
Logs can be found at Settings > Developer > TimeBase MCP > View Logs.
Claude Code
Launch Claude Code in an MCP debug mode:
claude --debug mcp
Refer to the official documentation for more details.
Opencode
MCP server logs can be found in the Opencode's log:
- On Linux and MacOS:
~/.local/share/opencode/log/ - On Windows: Press
WIN+Rand paste%USERPROFILE%\.local\share\opencode\log
Refer to the official documentation for more details.
Other
Logs are printed to stderr of the timebase-mcp process, look for them in the terminal where you started timebase-mcp or in the logs of your MCP client.
TimeBase connection issues
First, find the logs as described above and check for any error messages related to TimeBase connection. Common issues:
-
TimeBase server is not running or not accessible from this environment (e.g. wrong URL, network issues, firewall, WSL misconfiguration, etc.). Look for messages like
Connection refused at SOCKET. -
MCP edition mismatch: if you're trying to connect to TimeBase Enterprise but have the Community edition installed (or vice versa), you may see errors about protocol version mismatch and message about requiring an Enterprise/Community client.
-
Remote access is not enabled: some features require remote access to be enabled on the TimeBase server. Refer to TimeBase documentation for instructions on how to enable it:
-
Missing
DXAPI_SSL_TERMINATIONflag: if your TimeBase server setup requires SSL termination, but theDXAPI_SSL_TERMINATIONenvironment variable is not set totrue,dxapimay hang indefinitely and you'll get MCP connection timeout errors in the logs.
For TimeBase CE make sure that both Native (usually 8011) and HTTP (usually 8021) ports are visible and exposed to MCP. For example in case of port forwarding:
kubectl port-forward pod/timebase-consolidated-0 8011:8011 8021:8021 -n dev-namespace
See also
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file timebase_mcp-0.1.2.tar.gz.
File metadata
- Download URL: timebase_mcp-0.1.2.tar.gz
- Upload date:
- Size: 21.1 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.11.1
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
5876e3eade71f24b9546539831ce39fe5519959b1786cd579ed166772ee2e99d
|
|
| MD5 |
5caf83b54e9b7fde6e7e9e6c1e5ba1de
|
|
| BLAKE2b-256 |
0491ad23ca2ed27a1aefd9e506d7564c2717976c66167a3ce26abc335035ad9e
|
File details
Details for the file timebase_mcp-0.1.2-py3-none-any.whl.
File metadata
- Download URL: timebase_mcp-0.1.2-py3-none-any.whl
- Upload date:
- Size: 29.4 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.11.1
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
eea361baf077484b7d449ee9c5baf4d9209651ae743df0fb0ae3cd00ee91791f
|
|
| MD5 |
f3c09f242058e324a1ccae93636e7160
|
|
| BLAKE2b-256 |
f5d3e8baa88fed0204a39b91177a27734d637d41fff6e43a656f9eb7607643d5
|