fix: resolve read-only file system issues for Nix packaging
- Add config_paths.py for XDG-compliant path resolution - Update all servers to use user-writable locations (logs, tokens, .env) - Make .env file optional - server works with environment variables only - Default paths: ~/.local/share for data, ~/.local/state for logs - Update Nix wrapper with XDG defaults and helpful postInstall message - Update README.md with environment variable configuration documentation Fixes OSError when running in Nix store (read-only filesystem)
This commit is contained in:
41
README.md
41
README.md
@@ -2,9 +2,48 @@
|
||||
|
||||
This project provides a **FastMCP-powered** integration for Basecamp 3, allowing Cursor to interact with Basecamp directly through the MCP protocol.
|
||||
|
||||
✅ **Migration Complete:** Successfully migrated to official Anthropic FastMCP framework with **100% feature parity** (all 46 tools)
|
||||
✅ **Migration Complete:** Successfully migrated to official Anthropic FastMCP framework with **100% feature parity** (all 46 tools)
|
||||
🚀 **Ready for Production:** Full protocol compliance with MCP 2025-06-18
|
||||
|
||||
## Configuration
|
||||
|
||||
The Basecamp MCP server is configured entirely via environment variables. No `.env` file is required.
|
||||
|
||||
### Required Environment Variables
|
||||
|
||||
All required configuration is passed via environment variables:
|
||||
|
||||
- `BASECAMP_CLIENT_ID` - OAuth client ID from 37signals
|
||||
- `BASECAMP_CLIENT_SECRET` - OAuth client secret from 37signals
|
||||
- `BASECAMP_ACCOUNT_ID` - Your Basecamp account ID
|
||||
- `BASECAMP_REDIRECT_URI` - OAuth callback URL (usually `http://localhost:8000/auth/callback`)
|
||||
- `USER_AGENT` - User agent string for API requests
|
||||
|
||||
### Data Locations
|
||||
|
||||
The server stores data in XDG-compliant locations:
|
||||
|
||||
| File Type | Default Location | Environment Variable Override |
|
||||
|-----------|------------------|-------------------------------|
|
||||
| OAuth Tokens | `~/.local/share/basecamp-mcp/oauth_tokens.json` | `BASECAMP_TOKEN_FILE` |
|
||||
| Server Logs | `~/.local/state/basecamp-mcp/` | `BASECAMP_LOG_DIR` |
|
||||
|
||||
### Optional .env File (Development Only)
|
||||
|
||||
For local development, you can optionally create a `.env` file to avoid setting environment variables each time:
|
||||
|
||||
```bash
|
||||
# Default location: ~/.config/basecamp-mcp/.env
|
||||
# Or override with: BASECAMP_ENV_FILE=/custom/path/.env
|
||||
BASECAMP_CLIENT_ID=your_client_id_here
|
||||
BASECAMP_CLIENT_SECRET=your_client_secret_here
|
||||
BASECAMP_ACCOUNT_ID=your_account_id_here
|
||||
BASECAMP_REDIRECT_URI=http://localhost:8000/auth/callback
|
||||
USER_AGENT="Your App Name (your@email.com)"
|
||||
```
|
||||
|
||||
**Note:** The server works perfectly without a `.env` file - it's only a convenience for development.
|
||||
|
||||
## Quick Setup
|
||||
|
||||
This server works with both **Cursor** and **Claude Desktop**. Choose your preferred client:
|
||||
|
||||
Reference in New Issue
Block a user