Skip to content

Commit a0484bc

Browse files
authored
Merge pull request #65 from RadCod3/chore/update-readme
chore: update README.md for clarity and organization
2 parents 30641a9 + 8111428 commit a0484bc

File tree

1 file changed

+41
-129
lines changed

1 file changed

+41
-129
lines changed

README.md

Lines changed: 41 additions & 129 deletions
Original file line numberDiff line numberDiff line change
@@ -6,76 +6,40 @@ A Model Context Protocol (MCP) server providing comprehensive tools for interact
66
77
## Features
88

9-
- **Comprehensive Account Management**: List, search, and retrieve account information across all Firefly III account types
10-
- **Transaction Operations**: Full CRUD operations for transactions with support for withdrawals, deposits, and transfers
11-
- **Bulk Operations**: Efficient bulk transaction creation and updates for high-volume workflows
12-
- **Budget Management**: Complete budget analysis with spending tracking, allocation, and summary reporting
13-
- **Docker Support**: Production-ready Docker images with multi-platform support (amd64/arm64)
14-
- **Type Safety**: Full type hints and Pydantic validation throughout the codebase
15-
- **Async Operations**: Non-blocking HTTP operations for optimal performance
9+
- **Account Management**: List, search, and retrieve account information across all Firefly III account types
10+
- **Transaction Operations**: Full CRUD operations for withdrawals, deposits, and transfers
11+
- **Bulk Operations**: Efficient bulk transaction creation and updates
12+
- **Budget Management**: Budget analysis with spending tracking and allocation
13+
- **Docker Support**: Production-ready multi-platform images (amd64/arm64)
1614

17-
## Quick Start
18-
19-
### Prerequisites
15+
## Prerequisites
2016

2117
- Access to a Firefly III instance with a [Personal Access Token](https://docs.firefly-iii.org/how-to/firefly-iii/features/api/#personal-access-token)
22-
- For local installation: Python 3.14+ and [uv](https://github.com/astral-sh/uv) package manager
18+
- For local installation: Python 3.14+ and [uv](https://github.com/astral-sh/uv)
2319
- For Docker: Docker installed on your system
2420

25-
### Option 1: Docker (Recommended)
21+
## Adding to Claude
2622

27-
```bash
28-
docker pull ghcr.io/radcod3/lampyrid:latest
29-
```
23+
### Option 1: Local Setup (Claude Desktop)
3024

31-
### Option 2: Local Installation
25+
Clone and install LamPyrid:
3226

3327
```bash
3428
git clone https://github.com/RadCod3/LamPyrid.git
3529
cd LamPyrid
3630
uv sync
3731
```
3832

39-
## Adding to Claude
40-
41-
LamPyrid can be used with Claude in two ways:
42-
43-
### Local Setup (Claude Desktop)
44-
45-
For running LamPyrid locally on your machine with Claude Desktop.
46-
47-
**Using Docker:**
48-
4933
Add to your Claude Desktop configuration file:
5034
- macOS: `~/Library/Application Support/Claude/claude_desktop_config.json`
5135
- Windows: `%APPDATA%\Claude\claude_desktop_config.json`
5236

53-
```json
54-
{
55-
"mcpServers": {
56-
"lampyrid": {
57-
"command": "docker",
58-
"args": [
59-
"run", "--rm", "-i",
60-
"-e", "MCP_TRANSPORT=stdio",
61-
"-e", "FIREFLY_BASE_URL=https://your-firefly-instance.com",
62-
"-e", "FIREFLY_TOKEN=your-personal-access-token",
63-
"ghcr.io/radcod3/lampyrid:latest"
64-
]
65-
}
66-
}
67-
}
68-
```
69-
70-
**Using Local Installation:**
71-
7237
```json
7338
{
7439
"mcpServers": {
7540
"lampyrid": {
7641
"command": "uv",
77-
"args": ["run", "lampyrid"],
78-
"cwd": "/path/to/LamPyrid",
42+
"args": ["run", "--project", "/path/to/LamPyrid", "lampyrid"],
7943
"env": {
8044
"FIREFLY_BASE_URL": "https://your-firefly-instance.com",
8145
"FIREFLY_TOKEN": "your-personal-access-token"
@@ -85,9 +49,9 @@ Add to your Claude Desktop configuration file:
8549
}
8650
```
8751

88-
After adding the configuration, restart Claude Desktop. LamPyrid tools will be available for account management, transaction operations, and budget analysis.
52+
Restart Claude Desktop to enable LamPyrid tools.
8953

90-
### Remote Setup (Claude Connector)
54+
### Option 2: Remote Setup (Claude Connector)
9155

9256
When hosted on a remote server, LamPyrid can be added as a **Claude Connector**, allowing you to use it across all Claude interfaces including **Claude mobile apps** (iOS/Android), Claude web, and Claude Desktop.
9357

@@ -100,26 +64,32 @@ services:
10064
image: ghcr.io/radcod3/lampyrid:latest
10165
ports:
10266
- "3000:3000"
103-
environment:
104-
FIREFLY_BASE_URL: https://your-firefly-instance.com
105-
FIREFLY_TOKEN: your-api-token
106-
MCP_TRANSPORT: http
67+
env_file:
68+
- .env
10769
restart: unless-stopped
10870
```
10971
72+
```bash
73+
# .env
74+
FIREFLY_BASE_URL=https://your-firefly-instance.com
75+
FIREFLY_TOKEN=your-api-token
76+
MCP_TRANSPORT=http
77+
```
78+
79+
```bash
80+
docker compose up -d
81+
```
82+
11083
**2. Add as Claude Connector:**
11184

112-
1. Go to [Claude Settings](https://claude.ai/settings/integrations)
113-
2. Navigate to **Integrations** > **Add More**
114-
3. Enter your server URL: `https://your-server-url.com`
115-
4. LamPyrid is now available on all your Claude devices!
85+
1. Go to Claude **Settings** > **Connectors** > **Add connector**
86+
2. Enter your server URL: `https://your-server-url.com/mcp`
87+
3. LamPyrid is now available on all your Claude devices!
11688

117-
> **Security Note**: If hosting on a public server, it is strongly recommended to enable authentication. LamPyrid currently supports Google OAuth - see the [Authentication Setup](#google-oauth-authentication-optional) section for configuration.
89+
> **Security Note**: If hosting on a public server, it is strongly recommended to enable authentication. LamPyrid currently supports Google OAuth - see the [Authentication](#authentication-optional) section below.
11890
11991
## Configuration
12092

121-
LamPyrid uses environment variables for configuration:
122-
12393
### Required
12494

12595
| Variable | Description |
@@ -136,9 +106,9 @@ LamPyrid uses environment variables for configuration:
136106
| `MCP_PORT` | `3000` | Port binding for HTTP/SSE transports |
137107
| `LOGGING_LEVEL` | `INFO` | Logging verbosity: DEBUG/INFO/WARNING/ERROR/CRITICAL |
138108

139-
### Google OAuth Authentication (Optional)
109+
### Authentication (Optional)
140110

141-
Recommended for remote server deployments to secure access to your financial data. Currently, Google OAuth is the only supported authentication provider.
111+
Recommended for remote deployments. Currently supports Google OAuth.
142112

143113
| Variable | Description |
144114
|----------|-------------|
@@ -156,7 +126,7 @@ Recommended for remote server deployments to secure access to your financial dat
156126
6. Add authorized redirect URI: `{SERVER_BASE_URL}/auth/callback`
157127
7. Copy the Client ID and Client Secret to your environment
158128

159-
### OAuth Token Persistence (Optional)
129+
### Token Persistence (Optional)
160130

161131
Enable persistent authentication across server restarts:
162132

@@ -166,7 +136,7 @@ Enable persistent authentication across server restarts:
166136
| `OAUTH_STORAGE_ENCRYPTION_KEY` | Fernet key (generate: `python -c "from cryptography.fernet import Fernet; print(Fernet.generate_key().decode())"`) |
167137
| `OAUTH_STORAGE_PATH` | Storage path (default: `/app/data/oauth` for Docker) |
168138

169-
## Available MCP Tools
139+
## Available Tools
170140

171141
### Account Management (3 tools)
172142
| Tool | Description |
@@ -198,7 +168,7 @@ Enable persistent authentication across server restarts:
198168
| `get_budget_summary` | Comprehensive summary of all budgets with spending |
199169
| `get_available_budget` | Check available budget amounts for periods |
200170

201-
## Docker Deployment
171+
## Docker
202172

203173
### Available Images
204174

@@ -210,53 +180,13 @@ Enable persistent authentication across server restarts:
210180

211181
All images support `linux/amd64` and `linux/arm64` platforms.
212182

213-
### Using Docker Compose
214-
215-
The repository includes a `docker-compose.yml` for easy deployment:
216-
217-
```yaml
218-
services:
219-
lampyrid:
220-
image: ghcr.io/radcod3/lampyrid:latest
221-
ports:
222-
- "3000:3000"
223-
env_file:
224-
- .env
225-
volumes:
226-
# Persist OAuth tokens across container restarts
227-
- ./data/oauth:/app/data/oauth
228-
restart: unless-stopped
229-
```
230-
231-
Create a `.env` file with your configuration:
232-
233183
```bash
234-
# Required
235-
FIREFLY_BASE_URL=https://your-firefly-instance.com
236-
FIREFLY_TOKEN=your-api-token
237-
238-
# Optional - Server settings
239-
MCP_TRANSPORT=http
240-
LOGGING_LEVEL=INFO
241-
242-
# Optional - For remote authentication
243-
GOOGLE_CLIENT_ID=your-client-id
244-
GOOGLE_CLIENT_SECRET=your-client-secret
245-
SERVER_BASE_URL=https://your-domain.com
246-
247-
# Optional - For persistent OAuth tokens
248-
JWT_SIGNING_KEY=your-jwt-key
249-
OAUTH_STORAGE_ENCRYPTION_KEY=your-encryption-key
250-
OAUTH_STORAGE_PATH=/app/data/oauth
184+
docker pull ghcr.io/radcod3/lampyrid:latest
251185
```
252186

253-
Then start the server:
254-
255-
```bash
256-
docker compose up -d
257-
```
187+
### Volume Permissions
258188

259-
**Note on Volume Permissions**: If you encounter permission errors with OAuth storage, set the correct ownership:
189+
If you encounter permission errors with OAuth storage, set the correct ownership:
260190

261191
```bash
262192
mkdir -p ./data/oauth
@@ -269,10 +199,8 @@ sudo chown -R 65532:65532 ./data/oauth
269199
# Install dependencies
270200
uv sync
271201

272-
# Format code
202+
# Format and lint
273203
uv run ruff format
274-
275-
# Lint code
276204
uv run ruff check --fix
277205

278206
# Run the server
@@ -282,22 +210,6 @@ uv run lampyrid
282210
uv run pytest
283211
```
284212

285-
### Project Structure
286-
287-
```
288-
LamPyrid/
289-
├── src/lampyrid/
290-
│ ├── server.py # FastMCP server initialization
291-
│ ├── config.py # Environment configuration
292-
│ ├── clients/firefly.py # HTTP client for Firefly III API
293-
│ ├── models/ # Pydantic models
294-
│ ├── services/ # Business logic layer
295-
│ └── tools/ # MCP tool definitions
296-
├── tests/ # Unit and integration tests
297-
├── Dockerfile # Docker image definition
298-
└── docker-compose.yml # Docker Compose configuration
299-
```
300-
301213
## Contributing
302214

303215
Contributions are welcome! Please:
@@ -309,8 +221,8 @@ Contributions are welcome! Please:
309221

310222
## License
311223

312-
This project is licensed under the GNU Affero General Public License v3.0 (AGPL-3.0) - see the [LICENSE](LICENSE) file for details.
224+
GNU Affero General Public License v3.0 (AGPL-3.0) - see [LICENSE](LICENSE).
313225

314226
## Support
315227

316-
For issues and feature requests, please use the [GitHub issue tracker](https://github.com/RadCod3/LamPyrid/issues).
228+
For issues and feature requests, use the [GitHub issue tracker](https://github.com/RadCod3/LamPyrid/issues).

0 commit comments

Comments
 (0)