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