Content
# Vincent
`Vincent` is a repository for organizing and publishing reusable local `MCP plugin`. The current main product is `fastaicode-image-mcp`, which encapsulates the FastAICode compatible image interface into two tools that can be directly called by the MCP host:
- `generate_image`: Generate images from text and automatically save them as local `PNG` files
- `edit_image`: Edit images based on local images and automatically save them as local `PNG` files
## Current Repository Structure
```text
.
├── CURRENT_TASK.md
├── DECISIONS.md
├── docs/
│ ├── plans/
│ └── requirements/
├── fastaicode-image-mcp/
│ ├── .codex-plugin/
│ ├── .mcp.json
│ ├── README.md
│ ├── examples/
│ ├── server/
│ ├── skills/
│ └── tests/
└── outputs/
└── runtime/
└── vibe-sessions/
```
## How to Use MCP Structure
The current plugin directory `fastaicode-image-mcp/` has four key structures:
1. `.codex-plugin/plugin.json`
- Plugin metadata entry
- Declare plugin name, Skill directory, and MCP server configuration file location
2. `.mcp.json`
- Local server registration file read by MCP host
- Currently uses `python3 ./fastaicode-image-mcp/server/mcp_server.py` by default
3. `server/`
- `mcp_server.py`: MCP/JSON-RPC entry, handling `initialize`, `ping`, `tools/list`, `tools/call`
- `client.py`: Send requests to FastAICode image interface and parse responses
- `config.py`: Read `fastaicode-image-mcp.toml` and environment variables
- `naming.py`: Output file naming
- `models.py`: Response data model
4. `skills/fastaicode-image/SKILL.md`
- Explain when to call `generate_image`
- Explain when to call `edit_image`
- Constrain the usage semantics of `1k / 2k / 4k / auto`
## Quick Start
```bash
git clone git@github.com:Innnoa/MCP_Vincent.git
cd Vincent/fastaicode-image-mcp
python3 -m venv .venv
source .venv/bin/activate
python3 -m pip install --upgrade pip
python3 -m pip install httpx pytest
cp .env.example .env
set -a
source .env
set +a
pytest tests -v
```
The default configuration file is `fastaicode-image-mcp/fastaicode-image-mcp.toml`. If you want to change the interface address, default model, or default output directory, simply modify this file.
## Examples
| Text-to-Image (`generate_image`) | Text-to-Image (`generate_image`) |
|:---:|:---:|
|  |  |
| *orange fox logo* | *cute rubber duck* |
For more parameter descriptions, see `fastaicode-image-mcp/README.md`.
## Deployment
The current repository recommends "source code deployment":
1. Keep the `fastaicode-image-mcp/` directory structure unchanged
2. Install Python dependencies
3. Set `FASTAICODE_API_KEY`
4. Point MCP host to `fastaicode-image-mcp/.mcp.json`
If your MCP host starts the server with the current repository root directory as the working directory, the current `.mcp.json` can be used directly.
If your MCP host does not start the server with the current repository root directory as the working directory, please change `./fastaicode-image-mcp/server/mcp_server.py` in `fastaicode-image-mcp/.mcp.json` to an absolute path on your local machine; it is recommended to make such local path differences only on your local machine and not submit them back to GitHub.
For more complete tool parameters, directory descriptions, and call examples, see `fastaicode-image-mcp/README.md`.
## Local Verification
```bash
pytest fastaicode-image-mcp/tests -v
```
## Current Limitations
- Currently only supports image editing with local file input
- Does not implement multi-image input, URL input, and mask
- Availability of `4k` depends on the mapping in `fastaicode-image-mcp.toml`