@runapi.ai/flux-kontext-mcp 0.1.2 → 0.1.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +130 -23
- package/dist/src/meta.d.ts +1 -1
- package/dist/src/meta.js +1 -1
- package/dist/src/server.js +2 -30
- package/dist/src/server.js.map +1 -1
- package/package.json +16 -5
- package/server.json +4 -4
package/README.md
CHANGED
|
@@ -1,38 +1,56 @@
|
|
|
1
|
-
|
|
1
|
+
<h1 align="center">RunAPI Flux Kontext MCP Server</h1>
|
|
2
2
|
|
|
3
|
-
|
|
4
|
-
|
|
3
|
+
<p align="center">
|
|
4
|
+
<strong>Flux Kontext API access for AI agents: create image generation tasks, poll results, and check pricing through one focused MCP server.</strong>
|
|
5
|
+
</p>
|
|
5
6
|
|
|
6
|
-
|
|
7
|
+
<p align="center">
|
|
8
|
+
<sub>Works with Claude Code, Codex, Cursor, Windsurf, VS Code, Roo Code, and any MCP-compatible host.</sub>
|
|
9
|
+
</p>
|
|
7
10
|
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
-
|
|
11
|
+
<p align="center">
|
|
12
|
+
<a href="https://www.npmjs.com/package/@runapi.ai/flux-kontext-mcp"><img src="https://img.shields.io/npm/v/%40runapi.ai/flux-kontext-mcp?style=flat-square&color=blue" alt="npm version"></a>
|
|
13
|
+
<a href="https://github.com/runapi-ai/flux-kontext-mcp"><img src="https://img.shields.io/badge/GitHub-runapi--ai%2Fflux-kontext-mcp-24292f?style=flat-square" alt="GitHub repository"></a>
|
|
14
|
+
<a href="LICENSE"><img src="https://img.shields.io/badge/License-Apache_2.0-blue?style=flat-square" alt="Apache-2.0 license"></a>
|
|
15
|
+
<img src="https://img.shields.io/badge/Type-MCP_Server-blue?style=flat-square" alt="MCP Server">
|
|
16
|
+
<img src="https://img.shields.io/badge/Models-2-16a34a?style=flat-square" alt="2 models">
|
|
17
|
+
</p>
|
|
13
18
|
|
|
14
|
-
|
|
19
|
+
<p align="center">
|
|
20
|
+
<a href="#install">Install</a> |
|
|
21
|
+
<a href="#tools">Tools</a> |
|
|
22
|
+
<a href="#models">Models</a> |
|
|
23
|
+
<a href="#agent-prompts">Agent Prompts</a> |
|
|
24
|
+
<a href="#configuration">Configuration</a> |
|
|
25
|
+
<a href="#links">Links</a>
|
|
26
|
+
</p>
|
|
15
27
|
|
|
16
|
-
|
|
17
|
-
it to `~/.config/runapi/config.json`:
|
|
28
|
+
---
|
|
18
29
|
|
|
19
|
-
|
|
20
|
-
mkdir -p ~/.config/runapi
|
|
21
|
-
echo '{"api_key":"YOUR_KEY"}' > ~/.config/runapi/config.json
|
|
22
|
-
```
|
|
30
|
+
## Why This Package?
|
|
23
31
|
|
|
24
|
-
|
|
25
|
-
|
|
32
|
+
`@runapi.ai/flux-kontext-mcp` is a focused Model Context Protocol server for the **Flux Kontext** model line on RunAPI.
|
|
33
|
+
It gives MCP-compatible assistants direct access to 1 endpoint and 2 model variants without loading the full RunAPI catalog.
|
|
26
34
|
|
|
27
|
-
|
|
35
|
+
Use this per-model server when an agent should stay scoped to Flux Kontext. Use [`@runapi.ai/mcp`](https://github.com/runapi-ai/mcp) when one assistant should discover every RunAPI model line.
|
|
28
36
|
|
|
29
|
-
|
|
37
|
+
---
|
|
38
|
+
|
|
39
|
+
## Install
|
|
40
|
+
|
|
41
|
+
Add it to Claude Code:
|
|
30
42
|
|
|
31
43
|
```bash
|
|
32
|
-
npx -y @runapi.ai/flux-kontext-mcp
|
|
44
|
+
claude mcp add flux-kontext -s user -- npx -y @runapi.ai/flux-kontext-mcp
|
|
33
45
|
```
|
|
34
46
|
|
|
35
|
-
|
|
47
|
+
Use project scope when the server should be shared with a repository:
|
|
48
|
+
|
|
49
|
+
```bash
|
|
50
|
+
claude mcp add flux-kontext -s project -- npx -y @runapi.ai/flux-kontext-mcp
|
|
51
|
+
```
|
|
52
|
+
|
|
53
|
+
Codex, Cursor, Windsurf, VS Code, Roo Code, and other MCP hosts can use the same stdio command:
|
|
36
54
|
|
|
37
55
|
```json
|
|
38
56
|
{
|
|
@@ -46,6 +64,95 @@ Add it to an MCP client (see `examples/` for per-client configs):
|
|
|
46
64
|
}
|
|
47
65
|
```
|
|
48
66
|
|
|
67
|
+
Create an API key at [runapi.ai](https://runapi.ai) and expose it as `RUNAPI_API_KEY`. `check_pricing` can run without a key; task creation and status polling require one.
|
|
68
|
+
|
|
69
|
+
Ready-made examples are in [`examples/`](examples/) for Claude, Cursor, Windsurf, VS Code, and Roo Code.
|
|
70
|
+
|
|
71
|
+
---
|
|
72
|
+
|
|
73
|
+
## Tools
|
|
74
|
+
|
|
75
|
+
| Tool | Auth | Purpose |
|
|
76
|
+
|---|---|---|
|
|
77
|
+
| `text_to_image` | Yes | Create a Flux Kontext text to image task and optionally wait for a terminal status. Returns the task id, status, output URLs, and pricing snapshot. |
|
|
78
|
+
| `get_task` | Yes | Fetch the current status and latest payload for an existing task. |
|
|
79
|
+
| `check_pricing` | No | Look up the current pricing snapshot for a Flux Kontext model and endpoint. |
|
|
80
|
+
|
|
81
|
+
---
|
|
82
|
+
|
|
83
|
+
## Models
|
|
84
|
+
|
|
85
|
+
Flux Kontext covers 2 model variants across 1 endpoint. Each tool accepts the models listed for it:
|
|
86
|
+
|
|
87
|
+
| Tool | Models |
|
|
88
|
+
|---|---|
|
|
89
|
+
| `text_to_image` | `flux-kontext-max`, `flux-kontext-pro` |
|
|
90
|
+
|
|
91
|
+
Model availability can change between releases. Use `check_pricing` or the [Flux Kontext model page](https://runapi.ai/models/flux-kontext) for the current catalog view.
|
|
92
|
+
|
|
93
|
+
---
|
|
94
|
+
|
|
95
|
+
## Agent Prompts
|
|
96
|
+
|
|
97
|
+
Ask your assistant in natural language; it can inspect pricing, create the task, and return the task id plus output URLs.
|
|
98
|
+
|
|
99
|
+
### Create a task
|
|
100
|
+
|
|
101
|
+
```text
|
|
102
|
+
Run a Flux Kontext text to image task with RunAPI.
|
|
103
|
+
```
|
|
104
|
+
|
|
105
|
+
The assistant can call `check_pricing`, then `text_to_image`, and return the task id, status, and output URLs.
|
|
106
|
+
|
|
107
|
+
### Submit without waiting
|
|
108
|
+
|
|
109
|
+
```text
|
|
110
|
+
Create the task but don't wait for it to finish.
|
|
111
|
+
```
|
|
112
|
+
|
|
113
|
+
The assistant calls the create tool with `wait: false` and returns the task id. Check on it later with `get_task`.
|
|
114
|
+
|
|
115
|
+
### Check pricing before creating
|
|
116
|
+
|
|
117
|
+
```text
|
|
118
|
+
Check current Flux Kontext pricing, then create the task if it matches my request.
|
|
119
|
+
```
|
|
120
|
+
|
|
121
|
+
The assistant calls `check_pricing` and can link to the [Flux Kontext model page](https://runapi.ai/models/flux-kontext) for the canonical catalog entry.
|
|
122
|
+
|
|
123
|
+
---
|
|
124
|
+
|
|
125
|
+
## Configuration
|
|
126
|
+
|
|
127
|
+
The server reads the API key in this order:
|
|
128
|
+
|
|
129
|
+
1. `RUNAPI_API_KEY` environment variable
|
|
130
|
+
2. `~/.config/runapi/config.json`
|
|
131
|
+
|
|
132
|
+
Example config file:
|
|
133
|
+
|
|
134
|
+
```json
|
|
135
|
+
{
|
|
136
|
+
"apiKey": "your_runapi_key"
|
|
137
|
+
}
|
|
138
|
+
```
|
|
139
|
+
|
|
140
|
+
Do not commit real API keys. Get one at [runapi.ai](https://runapi.ai).
|
|
141
|
+
|
|
142
|
+
---
|
|
143
|
+
|
|
144
|
+
## Links
|
|
145
|
+
|
|
146
|
+
| Resource | URL |
|
|
147
|
+
|---|---|
|
|
148
|
+
| Flux Kontext model page | [https://runapi.ai/models/flux-kontext](https://runapi.ai/models/flux-kontext) |
|
|
149
|
+
| npm package | [@runapi.ai/flux-kontext-mcp](https://www.npmjs.com/package/@runapi.ai/flux-kontext-mcp) |
|
|
150
|
+
| GitHub repository | [runapi-ai/flux-kontext-mcp](https://github.com/runapi-ai/flux-kontext-mcp) |
|
|
151
|
+
| RunAPI MCP overview | [runapi.ai/mcp](https://runapi.ai/mcp) |
|
|
152
|
+
| RunAPI docs | [runapi.ai/docs](https://runapi.ai/docs) |
|
|
153
|
+
|
|
154
|
+
---
|
|
155
|
+
|
|
49
156
|
## License
|
|
50
157
|
|
|
51
|
-
Apache
|
|
158
|
+
Licensed under the [Apache License, Version 2.0](LICENSE).
|
package/dist/src/meta.d.ts
CHANGED
package/dist/src/meta.js
CHANGED
package/dist/src/server.js
CHANGED
|
@@ -2,7 +2,6 @@ import { z } from "zod";
|
|
|
2
2
|
import { createModelServer, findModelForAction, findModels, friendlyError, jsonText, priceForModel, RunApiClient, taskStatus } from "@runapi.ai/mcp-core";
|
|
3
3
|
import { readContract, readPricing } from "./data.js";
|
|
4
4
|
import { META } from "./meta.js";
|
|
5
|
-
const RESERVED_FIELDS = new Set(["model", "rules"]);
|
|
6
5
|
function lineService(contract) {
|
|
7
6
|
return Object.keys(contract.actions)[0]?.split("/")[0] ?? META.lineSlug;
|
|
8
7
|
}
|
|
@@ -22,34 +21,8 @@ function lineModels(contract) {
|
|
|
22
21
|
}
|
|
23
22
|
return [...seen];
|
|
24
23
|
}
|
|
25
|
-
// No-model endpoints (models: []) carry their fields under the "_" roster.
|
|
26
|
-
function rostersForAction(action) {
|
|
27
|
-
return action.models.length > 0 ? action.models : ["_"];
|
|
28
|
-
}
|
|
29
|
-
function fieldsForAction(action) {
|
|
30
|
-
const fields = {};
|
|
31
|
-
for (const model of rostersForAction(action)) {
|
|
32
|
-
const roster = action.fields_by_model[model] ?? {};
|
|
33
|
-
for (const [name, field] of Object.entries(roster)) {
|
|
34
|
-
if (RESERVED_FIELDS.has(name)) {
|
|
35
|
-
continue;
|
|
36
|
-
}
|
|
37
|
-
if (!(name in fields)) {
|
|
38
|
-
fields[name] = field;
|
|
39
|
-
}
|
|
40
|
-
}
|
|
41
|
-
}
|
|
42
|
-
return fields;
|
|
43
|
-
}
|
|
44
24
|
function rulesForAction(action) {
|
|
45
|
-
|
|
46
|
-
const roster = action.fields_by_model[model] ?? {};
|
|
47
|
-
const rules = roster.rules;
|
|
48
|
-
if (Array.isArray(rules) && rules.length > 0) {
|
|
49
|
-
return rules;
|
|
50
|
-
}
|
|
51
|
-
}
|
|
52
|
-
return [];
|
|
25
|
+
return action.rules ?? [];
|
|
53
26
|
}
|
|
54
27
|
function buildTools(contract) {
|
|
55
28
|
const tools = [];
|
|
@@ -62,8 +35,7 @@ function buildTools(contract) {
|
|
|
62
35
|
description: `Create a ${action.model} task on RunAPI (${endpoint.replace(/_/g, " ")}). Returns a task id, status, and output URLs.`,
|
|
63
36
|
service,
|
|
64
37
|
action: endpoint,
|
|
65
|
-
models: action.models
|
|
66
|
-
inputSchema: fieldsForAction(action)
|
|
38
|
+
models: action.models
|
|
67
39
|
});
|
|
68
40
|
inputRules[endpoint] = rulesForAction(action);
|
|
69
41
|
}
|
package/dist/src/server.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"server.js","sourceRoot":"","sources":["../../src/server.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,OAAO,EACL,iBAAiB,EACjB,kBAAkB,EAClB,UAAU,EACV,aAAa,EACb,QAAQ,EACR,aAAa,EACb,YAAY,EACZ,UAAU,
|
|
1
|
+
{"version":3,"file":"server.js","sourceRoot":"","sources":["../../src/server.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@runapi.ai/flux-kontext-mcp",
|
|
3
|
-
"version": "0.1.
|
|
4
|
-
"description": "RunAPI MCP server for
|
|
3
|
+
"version": "0.1.4",
|
|
4
|
+
"description": "RunAPI Flux Kontext MCP server for image generation: create tasks, poll results, and check pricing across 2 model variants from Claude Code, Codex, Cursor, and VS Code.",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "dist/src/index.js",
|
|
7
7
|
"bin": {
|
|
@@ -25,13 +25,24 @@
|
|
|
25
25
|
},
|
|
26
26
|
"keywords": [
|
|
27
27
|
"runapi",
|
|
28
|
+
"runapi-ai",
|
|
28
29
|
"mcp",
|
|
30
|
+
"mcp-server",
|
|
29
31
|
"model-context-protocol",
|
|
30
|
-
"ai"
|
|
32
|
+
"ai-agents",
|
|
33
|
+
"claude-code",
|
|
34
|
+
"cursor",
|
|
35
|
+
"vscode",
|
|
36
|
+
"flux-kontext",
|
|
37
|
+
"flux-kontext-mcp",
|
|
38
|
+
"flux-kontext-api",
|
|
39
|
+
"image-generation",
|
|
40
|
+
"ai-image",
|
|
41
|
+
"text-to-image"
|
|
31
42
|
],
|
|
32
43
|
"author": "RunAPI",
|
|
33
44
|
"license": "Apache-2.0",
|
|
34
|
-
"homepage": "https://runapi.ai",
|
|
45
|
+
"homepage": "https://runapi.ai/models/flux-kontext",
|
|
35
46
|
"repository": {
|
|
36
47
|
"type": "git",
|
|
37
48
|
"url": "git+https://github.com/runapi-ai/flux-kontext-mcp.git"
|
|
@@ -44,7 +55,7 @@
|
|
|
44
55
|
},
|
|
45
56
|
"dependencies": {
|
|
46
57
|
"@modelcontextprotocol/sdk": "^1.29.0",
|
|
47
|
-
"@runapi.ai/mcp-core": "0.1.
|
|
58
|
+
"@runapi.ai/mcp-core": "0.1.2",
|
|
48
59
|
"zod": "^3.25.76"
|
|
49
60
|
},
|
|
50
61
|
"devDependencies": {
|
package/server.json
CHANGED
|
@@ -1,23 +1,23 @@
|
|
|
1
1
|
{
|
|
2
2
|
"$schema": "https://static.modelcontextprotocol.io/schemas/2025-12-11/server.schema.json",
|
|
3
3
|
"name": "io.github.runapi-builder/flux-kontext-mcp",
|
|
4
|
-
"description": "RunAPI MCP server for Flux Kontext: create tasks, poll status,
|
|
4
|
+
"description": "RunAPI MCP server for Flux Kontext: create tasks, poll status, check pricing.",
|
|
5
5
|
"repository": {
|
|
6
6
|
"url": "https://github.com/runapi-ai/flux-kontext-mcp",
|
|
7
7
|
"source": "github"
|
|
8
8
|
},
|
|
9
|
-
"version": "0.1.
|
|
9
|
+
"version": "0.1.4",
|
|
10
10
|
"packages": [
|
|
11
11
|
{
|
|
12
12
|
"registryType": "npm",
|
|
13
13
|
"identifier": "@runapi.ai/flux-kontext-mcp",
|
|
14
|
-
"version": "0.1.
|
|
14
|
+
"version": "0.1.4",
|
|
15
15
|
"transport": {
|
|
16
16
|
"type": "stdio"
|
|
17
17
|
},
|
|
18
18
|
"environmentVariables": [
|
|
19
19
|
{
|
|
20
|
-
"description": "RunAPI API key.
|
|
20
|
+
"description": "RunAPI API key. Create one at https://runapi.ai",
|
|
21
21
|
"isRequired": true,
|
|
22
22
|
"format": "string",
|
|
23
23
|
"isSecret": true,
|