8c7ba4dbd9ed63646e1b8e8a57d6e15d99b1ae0f
Overrides Bootstrap 5.3's native dark color-mode tokens with the exact Tokyo Night hex values waffles.yttrx.com's Compost/Tailwind theme uses (same primary blue, neutral backgrounds, etc.), so the two sites share one visual identity, plus repoints the stale GitHub source link to Gitea.
finger-web
A Flask web application that fronts a finger daemon, with a JSON API, a CLI client, and an MCP server for Claude integration.
Components
| Path | Description |
|---|---|
app.py |
Flask web app and JSON API |
cli/finger.py |
Command-line client |
mcp/server.py |
MCP server for Claude |
Web App
Requirements
- Python 3.9+
- A
fingerbinary available on the server's PATH
Installation
pip install -r requirements.txt
Configuration
All settings are read from environment variables.
| Variable | Description | Default |
|---|---|---|
SECRET_KEY |
Flask secret key | dev-secret-key-change-in-production |
FLASK_DEBUG |
Enable debug mode | True |
BASIC_AUTH_USERS |
Comma-separated user:pass pairs for upload auth |
(none — upload disabled) |
SCP_ENABLED |
Enable SCP transfer of uploaded plan files | false |
REMOTE_HOST |
Remote host for SCP | — |
REMOTE_USER |
Remote user for SCP | — |
REMOTE_PATH |
Remote path for SCP destination | — |
REMOTE_PORT |
Remote SSH port | 22 |
REMOTE_PRIVATE_KEY |
Path to SSH private key | — |
Running
python app.py
# or with gunicorn
gunicorn -w 4 -b 0.0.0.0:5000 app:app
Docker
docker-compose up -d
API
| Endpoint | Method | Auth | Description |
|---|---|---|---|
/finger |
GET/POST | — | Web UI finger query |
/finger/<username> |
GET | — | Web UI finger query (URL form) |
/api/finger |
GET | — | JSON: list logged-in users |
/api/finger/<username> |
GET | — | JSON: finger a specific user |
/api/upload |
POST | Basic | Upload a plan file |
/api/info |
GET | — | API metadata |
Example
curl http://localhost:5000/api/finger/[email protected]
{
"status": "success",
"username": "[email protected]",
"result": "Login: pete\t\t\tName: Pete Blair\n..."
}
CLI
Installation
pip install -r cli/requirements.txt
Configuration
export FINGER_WEB_URL=http://localhost:5000
export FINGER_USER=youruser # only needed for plan uploads
export FINGER_PASS=yourpassword # only needed for plan uploads
Usage
# Finger a user
python cli/finger.py query [email protected]
# Upload your plan file
python cli/finger.py plan ~/.plan
MCP Server
Exposes finger query and plan upload as tools for Claude.
Installation
pip install -r mcp/requirements.txt
Configuration
export FINGER_WEB_URL=http://localhost:5000
export FINGER_USER=youruser # only needed for upload_plan tool
export FINGER_PASS=yourpassword # only needed for upload_plan tool
Running
python mcp/server.py
Claude Desktop configuration
Add to your claude_desktop_config.json:
{
"mcpServers": {
"finger": {
"command": "python",
"args": ["/path/to/finger-web/mcp/server.py"],
"env": {
"FINGER_WEB_URL": "http://localhost:5000",
"FINGER_USER": "youruser",
"FINGER_PASS": "yourpassword"
}
}
}
}
Available tools
| Tool | Description |
|---|---|
finger_user(username) |
Query finger info for a user, or leave empty to list logged-in users |
upload_plan(filename, content) |
Upload or update a plan file |
Languages
Python
49.7%
HTML
20.9%
CSS
14.2%
JavaScript
13.2%
Dockerfile
2%