# Flemcee Worklog
This document captures what has been built so far for the `flemcee` MCP server and how it is structured.
## Summary
- New MCP server project at `/Users/tylertt/flemcee`.
- Uses `flapi` to execute Python inside FL Studio via the MIDI scripting API.
- MCP server exposes:
- Core tools: connect, status, exec, eval, call.
- Catalog tools + resources generated from `fl-studio-api-stubs`.
- Full stub-driven tool generation (per-function tools).
- Curated Ableton-style tools (friendly names, higher-level behaviors).
- Default MCP transport: `streamable-http` (runs without a stdio client).
## Architecture
1. `FlemceeFlapiClient`
- Wraps `FlapiBaseClient` with an eval message type for structured results.
- Handles stdout capture from FL Studio for `exec` and `eval` outputs.
2. MCP Server
- Uses `FastMCP`.
- Tools for `fl_exec`, `fl_eval`, `fl_call`, plus catalog and symbol tools.
- Optional tool generation based on stub catalog.
- Curated tools registered at startup when enabled.
3. Stub Catalog
- Parses `fl-studio-api-stubs` `.pyi` files to list modules, functions, classes.
- Exposed via MCP tools and resources for discovery.
## Files Added/Updated
- `/Users/tylertt/flemcee/pyproject.toml`
- `/Users/tylertt/flemcee/README.md`
- `/Users/tylertt/flemcee/ROADMAP.md`
- `/Users/tylertt/flemcee/WORKLOG.md`
- `/Users/tylertt/flemcee/src/flemcee/__init__.py`
- `/Users/tylertt/flemcee/src/flemcee/__main__.py`
- `/Users/tylertt/flemcee/src/flemcee/config.py`
- `/Users/tylertt/flemcee/src/flemcee/flapi_client.py`
- `/Users/tylertt/flemcee/src/flemcee/server.py`
- `/Users/tylertt/flemcee/src/flemcee/catalog.py`
- `/Users/tylertt/flemcee/src/flemcee/toolgen.py`
- `/Users/tylertt/flemcee/src/flemcee/curated.py`
## Known Limitations
- The FL Studio MIDI scripting API does not expose full audio analysis.
- “True listening” requires rendering audio and external analysis.
- Some behaviors require FL Studio to be running with Flapi enabled.