TigerData Pulumi MCP Server
README.md
# TigerData Pulumi MCP Server
> **Note:**
> If you are using this MCP server via an MCP client (such as Cursor), you do **not** need to run or manage the server process manually. The client will handle all communication with the MCP server for you.
This project provides a server interface for managing TigerData Cloud services using Pulumi automation.
## Quick Setup for MCP Clients (e.g., Cursor)
1. **In your main project's `.env` file, add:**
```
PULUMI_PROJECT_PATH=/absolute/path/to/your/project/infra
```
2. **Set the `DOTENV_PATH` environment variable in your shell profile:**
```sh
export DOTENV_PATH=/absolute/path/to/your/project/.env
```
> This ensures the MCP server can always find and use your project's `.env` file, no matter where the MCP server is installed or run. Setting it in your shell profile makes it available in every terminal session.
3. **Configure your MCP client (e.g., Cursor) as needed (e.g., with `mcp.json`).**
That's it! You can now use all MCP features in your client, and the MCP server will automatically use your configuration.
## MCP Configuration Setup
### For Cursor IDE
Create or update your MCP configuration file at `~/.cursor/mcp.json`:
```json
{
"mcpServers": {
"tigerdata-pulumi": {
"command": "node",
"args": [
"/absolute/path/to/tigerdata-pulumi-mcp-server/dist/index.js"
],
"env": {
"PULUMI_PROJECT_PATH": "/absolute/path/to/your/project/infra"
}
}
}
}
```
**Example paths:**
- If your server is at: `/Users/username/projects/tigerdata-pulumi-mcp-server/`
- And your Pulumi infra is at: `/Users/username/projects/my-project/infra/`
- Your config would be:
```json
{
"mcpServers": {
"tigerdata-pulumi": {
"command": "node",
"args": [
"/Users/username/projects/tigerdata-pulumi-mcp-server/dist/index.js"
],
"env": {
"PULUMI_PROJECT_PATH": "/Users/username/projects/my-project/infra"
}
}
}
}
```
### For Other MCP Clients
#### Claude Desktop
Add to your `claude_desktop_config.json`:
```json
{
"mcpServers": {
"tigerdata-pulumi": {
"command": "node",
"args": ["/path/to/tigerdata-pulumi-mcp-server/dist/index.js"],
"env": {
"PULUMI_PROJECT_PATH": "/path/to/your/project/infra"
}
}
}
}
```
#### Anthropic's Inspector (Debugging Tool)
Add this to your MCP config for debugging:
```json
{
"mcpServers": {
"inspector": {
"command": "npx",
"args": ["--yes", "@anthropic-ai/inspector"]
}
}
}
```
### Configuration Options
| Option | Description | Required | Default |
|--------|-------------|----------|---------|
| `command` | Command to run the server | Yes | `node` |
| `args` | Array of command arguments | Yes | `["/path/to/dist/index.js"]` |
| `env.PULUMI_PROJECT_PATH` | Path to your Pulumi infrastructure directory | Yes | None |
### After Configuration
1. **Restart your MCP client** (Cursor, Claude Desktop, etc.)
2. **Verify connection** - you should see the server connect successfully
3. **Test tools** - try using one of the available TimescaleDB tools:
- `timescale_create_service`
- `timescale_create_services`
- `timescale_delete_service`
- `timescale_list_services`
### Troubleshooting MCP Connection
- **"No tools or prompts" error**: Ensure the server path in your config is correct
- **Server not found**: Verify the `dist/index.js` file exists and the path is absolute
- **Permission denied**: Make sure the server directory is readable
- **Environment variables**: Confirm `PULUMI_PROJECT_PATH` is set correctly
---
## Advanced: Running the MCP Server Manually
If you ever need to run the MCP server as a standalone process (for development or debugging):
1. Install dependencies:
```sh
cd /path/to/tigerdata-pulumi-mcp-server
npm install
```
2. Start the server:
```sh
npm start
```
---
## Initializing or Selecting a Pulumi Stack (from the terminal)
You can initialize or select your Pulumi stack directly from your infra directory:
```
cd /absolute/path/to/your/project/infra
pulumi stack init dev # (or pulumi stack select dev if it already exists)
pulumi up
```
---
## Troubleshooting
- **Error: Invalid workDir passed to local workspace:**
- Make sure your `.env` file contains the correct `PULUMI_PROJECT_PATH`.
- Make sure `DOTENV_PATH` is set to your `.env` file and is available in your shell (check with `echo $DOTENV_PATH`).
- Restart your terminal after editing your shell profile.
---
## Example `.env.example`
```
# Path to your Pulumi infra directory
# PULUMI_PROJECT_PATH=/absolute/path/to/your/project/infra
```
---
This setup allows you to use the MCP server with any project structure, making it flexible and user-friendly for all users. This server cannot be deployed
Maintenance
ActivityInactive
ResponsivenessNo issues