Skip to main content
Glama
stumpyfr

ActivitySmith MCP Server

by stumpyfr
README.md
## ActivitySmith MCP Server

This MCP server exposes [ActivitySmith](https://activitysmith.com/) notifications and live activity tools.

### MCP Client Config (stdio)

Example mcp.json:

```json
{
	"mcpServers": {
		"activitysmith": {
			"command": "uv",
			"args": ["run", "mcp-activitysmith"],
			"env": {
				"API_KEY": "your_key_here"
			}
		}
	}
}
```

Example mcp.json with input prompt (VS Code):

```json
{
	"inputs": [
		{
			"id": "activitysmithApiKey",
			"type": "promptString",
			"description": "ActivitySmith API key",
			"password": true
		}
	],
	"mcpServers": {
		"activitysmith": {
			"command": "uv",
			"args": ["run", "mcp-activitysmith"],
			"env": {
				"API_KEY": "${input:activitysmithApiKey}"
			}
		}
	}
}
```

Example mcp.json using Docker (stdio, latest image):

```json
{
	"mcpServers": {
		"activitysmith": {
			"command": "docker",
			"args": [
				"run",
				"--rm",
				"-i",
				"-e",
				"API_KEY=your_key_here",
				"ghcr.io/stumpyfr/mcp-activitysmith:latest"
			]
		}
	}
}
```

### MCP Client Config (HTTP)

Example mcp.json:

```json
{
	"mcpServers": {
		"activitysmith": {
			"url": "http://127.0.0.1:8000",
			"headers": {
				"Authorization": "Bearer your_key_here"
			}
		}
	}
}
```

Example mcp.json with input prompt (VS Code):

```json
{
	"inputs": [
		{
			"id": "activitysmithApiKey",
			"type": "promptString",
			"description": "ActivitySmith API key",
			"password": true
		}
	],
	"mcpServers": {
		"activitysmith": {
			"url": "http://127.0.0.1:8000",
			"headers": {
				"Authorization": "Bearer ${input:activitysmithApiKey}"
			}
		}
	}
}
```

### Dev requirements

- Python 3.12+
- ActivitySmith API key

### Install

```bash
uv sync
```

If you change the package name or entry point, rerun `uv sync` to refresh the script.

### Run (stdio)

```bash
API_KEY=your_key_here uv run mcp-activitysmith
```

### Run (HTTP)

```bash
uv run mcp-activitysmith --server
```

### Notes

- HTTP mode reads the API key from the Authorization header on each request.
- Stdio mode reads the API key from the API_KEY environment variable.

TDQS

B3.4/5.0

Scored across 4 tools

Disambiguation5/5

Each tool has a clearly distinct purpose: start, update, end an activity, and send notifications. No overlap in functionality.

Naming Consistency5/5

All tools follow a consistent verb_noun pattern using snake_case: start_activity, update_activity, end_activity, send_notifications.

Tool Count5/5

With 4 tools covering the core activity lifecycle and notifications, the count is well-scoped for the server's purpose.

Completeness4/5

The tool set covers the essential activity operations (start, update, end) and notifications. A missing retrieval tool (e.g., get_activity) is a minor gap but not critical for typical usage.

Maintenance

ActivityInactive
ResponsivenessNo issues