waffle2k 8c7ba4dbd9 Restyle to Tokyo Night, matching waffles.yttrx.com's palette
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.
2026-07-23 22:09:22 -07:00
2025-06-26 12:44:28 -07:00
2025-06-26 12:44:28 -07:00
2025-06-26 14:44:42 -07:00
2025-06-26 12:44:28 -07:00

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 finger binary 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
S
Description
No description provided
Readme
101 KiB
Languages
Python 49.7%
HTML 20.9%
CSS 14.2%
JavaScript 13.2%
Dockerfile 2%