qiloback-mcp 0.3.2__tar.gz
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.
- qiloback_mcp-0.3.2/.gitignore +64 -0
- qiloback_mcp-0.3.2/PKG-INFO +71 -0
- qiloback_mcp-0.3.2/README.md +52 -0
- qiloback_mcp-0.3.2/pyproject.toml +43 -0
- qiloback_mcp-0.3.2/src/qiloback_mcp/__init__.py +3 -0
- qiloback_mcp-0.3.2/src/qiloback_mcp/server.py +106 -0
- qiloback_mcp-0.3.2/src/qiloback_mcp/tools.py +526 -0
- qiloback_mcp-0.3.2/tests/_fixtures.py +130 -0
- qiloback_mcp-0.3.2/tests/conftest.py +48 -0
- qiloback_mcp-0.3.2/tests/test_internal_helpers.py +86 -0
- qiloback_mcp-0.3.2/tests/test_server_wiring.py +55 -0
- qiloback_mcp-0.3.2/tests/test_tools_codegen_and_ops.py +356 -0
- qiloback_mcp-0.3.2/tests/test_tools_components.py +214 -0
- qiloback_mcp-0.3.2/tests/test_tools_dsl.py +220 -0
- qiloback_mcp-0.3.2/tests/test_tools_project.py +193 -0
|
@@ -0,0 +1,64 @@
|
|
|
1
|
+
# Python
|
|
2
|
+
__pycache__/
|
|
3
|
+
*.pyc
|
|
4
|
+
*.pyo
|
|
5
|
+
*.pyd
|
|
6
|
+
*.egg-info/
|
|
7
|
+
dist/
|
|
8
|
+
build/
|
|
9
|
+
*.egg
|
|
10
|
+
.venv/
|
|
11
|
+
venv/
|
|
12
|
+
|
|
13
|
+
# uv
|
|
14
|
+
.python-version
|
|
15
|
+
|
|
16
|
+
# Testing
|
|
17
|
+
.coverage
|
|
18
|
+
htmlcov/
|
|
19
|
+
.pytest_cache/
|
|
20
|
+
|
|
21
|
+
# Environment
|
|
22
|
+
.env
|
|
23
|
+
.env.local
|
|
24
|
+
.env.production
|
|
25
|
+
|
|
26
|
+
# Secrets (JWT keys, signing material)
|
|
27
|
+
.keys/
|
|
28
|
+
|
|
29
|
+
# IDE
|
|
30
|
+
.vscode/
|
|
31
|
+
.idea/
|
|
32
|
+
*.swp
|
|
33
|
+
*.swo
|
|
34
|
+
|
|
35
|
+
# OS
|
|
36
|
+
.DS_Store
|
|
37
|
+
Thumbs.db
|
|
38
|
+
|
|
39
|
+
# Node (admin panel)
|
|
40
|
+
node_modules/
|
|
41
|
+
.next/
|
|
42
|
+
out/
|
|
43
|
+
.turbo/
|
|
44
|
+
|
|
45
|
+
# Generated output
|
|
46
|
+
generated/*/
|
|
47
|
+
|
|
48
|
+
# Docker
|
|
49
|
+
*.log
|
|
50
|
+
|
|
51
|
+
# Lock files for generated projects
|
|
52
|
+
# (the platform's own lock files are tracked)
|
|
53
|
+
generated/**/.bp-lock.json
|
|
54
|
+
|
|
55
|
+
# Database
|
|
56
|
+
*.db
|
|
57
|
+
*.sqlite3
|
|
58
|
+
tsconfig.tsbuildinfo
|
|
59
|
+
docs/internal/
|
|
60
|
+
|
|
61
|
+
# uv.lock and pnpm-lock.yaml are committed for reproducibility — see
|
|
62
|
+
# Renovate / Dependabot config for the bot-driven update cadence.
|
|
63
|
+
wrappers/pip/.venv
|
|
64
|
+
wrappers/pip/uv.lock
|
|
@@ -0,0 +1,71 @@
|
|
|
1
|
+
Metadata-Version: 2.4
|
|
2
|
+
Name: qiloback-mcp
|
|
3
|
+
Version: 0.3.2
|
|
4
|
+
Summary: QiloBack MCP Server — AI tool integration for backend manufacturing
|
|
5
|
+
Project-URL: Homepage, https://qiloback.dev
|
|
6
|
+
Project-URL: Repository, https://github.com/delixon-labs/delixon-qiloback
|
|
7
|
+
Author: XPlus Technologies LLC
|
|
8
|
+
License: FSL-1.1-ALv2
|
|
9
|
+
Keywords: ai,backend,code-generation,mcp,qiloback,tool
|
|
10
|
+
Classifier: Development Status :: 3 - Alpha
|
|
11
|
+
Classifier: Intended Audience :: Developers
|
|
12
|
+
Classifier: License :: Other/Proprietary License
|
|
13
|
+
Classifier: Programming Language :: Python :: 3.12
|
|
14
|
+
Requires-Python: >=3.12
|
|
15
|
+
Requires-Dist: fastmcp>=2.0
|
|
16
|
+
Requires-Dist: httpx>=0.27
|
|
17
|
+
Requires-Dist: pyyaml>=6.0
|
|
18
|
+
Description-Content-Type: text/markdown
|
|
19
|
+
|
|
20
|
+
# qiloback-mcp
|
|
21
|
+
|
|
22
|
+
MCP (Model Context Protocol) server for QiloBack. Lets AI agents
|
|
23
|
+
(Claude Code, Cursor, Windsurf, ChatGPT Desktop, …) drive a QiloBack
|
|
24
|
+
platform-api as a first-class tool.
|
|
25
|
+
|
|
26
|
+
## Install
|
|
27
|
+
|
|
28
|
+
```bash
|
|
29
|
+
pip install qiloback-mcp # or: uvx qiloback-mcp
|
|
30
|
+
```
|
|
31
|
+
|
|
32
|
+
## Configure (Claude Code)
|
|
33
|
+
|
|
34
|
+
```bash
|
|
35
|
+
claude mcp add qiloback -- uvx qiloback-mcp
|
|
36
|
+
```
|
|
37
|
+
|
|
38
|
+
Set the platform endpoint and (optional) bearer token via environment:
|
|
39
|
+
|
|
40
|
+
```bash
|
|
41
|
+
export QILOBACK_API_URL=http://localhost:8001
|
|
42
|
+
export QILOBACK_API_TOKEN=…
|
|
43
|
+
```
|
|
44
|
+
|
|
45
|
+
## Tools
|
|
46
|
+
|
|
47
|
+
The server exposes tools across six groups:
|
|
48
|
+
|
|
49
|
+
- **Project** — `create_project`, `get_project`, `list_projects`,
|
|
50
|
+
`delete_project`, `eject_project`
|
|
51
|
+
- **DSL** — `get_project_dsl`, `update_dsl`, `validate_dsl`,
|
|
52
|
+
`diff_dsl`, `add_entity`, `list_templates`
|
|
53
|
+
- **Codegen** — `generate_backend`, `list_generations`,
|
|
54
|
+
`get_generation`, `generate_sdk`, `scan_frontend`
|
|
55
|
+
- **Migration** — `migration_status`
|
|
56
|
+
- **Operations** — `health_check`, `get_audit_events`, `get_metrics`
|
|
57
|
+
- **AI** — `ai_generate_dsl`, `review_dsl`, `suggest_indexes`
|
|
58
|
+
|
|
59
|
+
The most opinionated tool is `eject_project`: it returns a portable
|
|
60
|
+
zip with the FastAPI source, a Dockerfile, a docker-compose stack and
|
|
61
|
+
a deploy README — runs anywhere with no QiloBack runtime dependency.
|
|
62
|
+
The artefacts inside the bundle are released under Apache 2.0; the
|
|
63
|
+
QiloBack license stays on the generator, not on its output.
|
|
64
|
+
|
|
65
|
+
## License
|
|
66
|
+
|
|
67
|
+
`qiloback-mcp` itself ships under FSL-1.1-ALv2 — source-available
|
|
68
|
+
during the FSL window, automatic conversion to Apache 2.0 two years
|
|
69
|
+
after each release. See the QiloBack
|
|
70
|
+
[LICENSE-FAQ.md](https://github.com/delixon-labs/delixon-qiloback/blob/main/LICENSE-FAQ.md)
|
|
71
|
+
for the full picture.
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
# qiloback-mcp
|
|
2
|
+
|
|
3
|
+
MCP (Model Context Protocol) server for QiloBack. Lets AI agents
|
|
4
|
+
(Claude Code, Cursor, Windsurf, ChatGPT Desktop, …) drive a QiloBack
|
|
5
|
+
platform-api as a first-class tool.
|
|
6
|
+
|
|
7
|
+
## Install
|
|
8
|
+
|
|
9
|
+
```bash
|
|
10
|
+
pip install qiloback-mcp # or: uvx qiloback-mcp
|
|
11
|
+
```
|
|
12
|
+
|
|
13
|
+
## Configure (Claude Code)
|
|
14
|
+
|
|
15
|
+
```bash
|
|
16
|
+
claude mcp add qiloback -- uvx qiloback-mcp
|
|
17
|
+
```
|
|
18
|
+
|
|
19
|
+
Set the platform endpoint and (optional) bearer token via environment:
|
|
20
|
+
|
|
21
|
+
```bash
|
|
22
|
+
export QILOBACK_API_URL=http://localhost:8001
|
|
23
|
+
export QILOBACK_API_TOKEN=…
|
|
24
|
+
```
|
|
25
|
+
|
|
26
|
+
## Tools
|
|
27
|
+
|
|
28
|
+
The server exposes tools across six groups:
|
|
29
|
+
|
|
30
|
+
- **Project** — `create_project`, `get_project`, `list_projects`,
|
|
31
|
+
`delete_project`, `eject_project`
|
|
32
|
+
- **DSL** — `get_project_dsl`, `update_dsl`, `validate_dsl`,
|
|
33
|
+
`diff_dsl`, `add_entity`, `list_templates`
|
|
34
|
+
- **Codegen** — `generate_backend`, `list_generations`,
|
|
35
|
+
`get_generation`, `generate_sdk`, `scan_frontend`
|
|
36
|
+
- **Migration** — `migration_status`
|
|
37
|
+
- **Operations** — `health_check`, `get_audit_events`, `get_metrics`
|
|
38
|
+
- **AI** — `ai_generate_dsl`, `review_dsl`, `suggest_indexes`
|
|
39
|
+
|
|
40
|
+
The most opinionated tool is `eject_project`: it returns a portable
|
|
41
|
+
zip with the FastAPI source, a Dockerfile, a docker-compose stack and
|
|
42
|
+
a deploy README — runs anywhere with no QiloBack runtime dependency.
|
|
43
|
+
The artefacts inside the bundle are released under Apache 2.0; the
|
|
44
|
+
QiloBack license stays on the generator, not on its output.
|
|
45
|
+
|
|
46
|
+
## License
|
|
47
|
+
|
|
48
|
+
`qiloback-mcp` itself ships under FSL-1.1-ALv2 — source-available
|
|
49
|
+
during the FSL window, automatic conversion to Apache 2.0 two years
|
|
50
|
+
after each release. See the QiloBack
|
|
51
|
+
[LICENSE-FAQ.md](https://github.com/delixon-labs/delixon-qiloback/blob/main/LICENSE-FAQ.md)
|
|
52
|
+
for the full picture.
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
[project]
|
|
2
|
+
name = "qiloback-mcp"
|
|
3
|
+
version = "0.3.2"
|
|
4
|
+
description = "QiloBack MCP Server — AI tool integration for backend manufacturing"
|
|
5
|
+
readme = "README.md"
|
|
6
|
+
license = {text = "FSL-1.1-ALv2"}
|
|
7
|
+
authors = [{name = "XPlus Technologies LLC"}]
|
|
8
|
+
requires-python = ">=3.12"
|
|
9
|
+
keywords = ["qiloback", "mcp", "ai", "tool", "backend", "code-generation"]
|
|
10
|
+
classifiers = [
|
|
11
|
+
"Development Status :: 3 - Alpha",
|
|
12
|
+
"Intended Audience :: Developers",
|
|
13
|
+
"License :: Other/Proprietary License",
|
|
14
|
+
"Programming Language :: Python :: 3.12",
|
|
15
|
+
]
|
|
16
|
+
dependencies = [
|
|
17
|
+
"fastmcp>=2.0",
|
|
18
|
+
"httpx>=0.27",
|
|
19
|
+
"pyyaml>=6.0",
|
|
20
|
+
]
|
|
21
|
+
|
|
22
|
+
[project.scripts]
|
|
23
|
+
qiloback-mcp = "qiloback_mcp.server:main"
|
|
24
|
+
|
|
25
|
+
[project.urls]
|
|
26
|
+
Homepage = "https://qiloback.dev"
|
|
27
|
+
Repository = "https://github.com/delixon-labs/delixon-qiloback"
|
|
28
|
+
|
|
29
|
+
[build-system]
|
|
30
|
+
requires = ["hatchling"]
|
|
31
|
+
build-backend = "hatchling.build"
|
|
32
|
+
|
|
33
|
+
[tool.hatch.build.targets.wheel]
|
|
34
|
+
packages = ["src/qiloback_mcp"]
|
|
35
|
+
|
|
36
|
+
[dependency-groups]
|
|
37
|
+
dev = ["pytest>=8.0", "pytest-asyncio>=0.23", "pytest-cov>=5.0"]
|
|
38
|
+
|
|
39
|
+
[tool.pytest.ini_options]
|
|
40
|
+
testpaths = ["tests"]
|
|
41
|
+
asyncio_mode = "auto"
|
|
42
|
+
addopts = "-q --strict-markers"
|
|
43
|
+
pythonpath = ["src", "tests"]
|
|
@@ -0,0 +1,106 @@
|
|
|
1
|
+
"""QiloBack MCP Server — exposes QiloBack platform as AI tools.
|
|
2
|
+
|
|
3
|
+
Connects to the Platform API (default: http://localhost:8001) and provides
|
|
4
|
+
tools for creating projects, managing entities, generating backends, and more.
|
|
5
|
+
|
|
6
|
+
Usage:
|
|
7
|
+
# Run directly
|
|
8
|
+
qiloback-mcp
|
|
9
|
+
|
|
10
|
+
# Add to Claude Code
|
|
11
|
+
claude mcp add qiloback -- uvx qiloback-mcp
|
|
12
|
+
|
|
13
|
+
# Environment variables:
|
|
14
|
+
# QILOBACK_API_URL — Platform API URL (default: http://localhost:8001)
|
|
15
|
+
# QILOBACK_API_TOKEN — Bearer token for API auth (optional)
|
|
16
|
+
"""
|
|
17
|
+
|
|
18
|
+
from __future__ import annotations
|
|
19
|
+
|
|
20
|
+
from fastmcp import FastMCP
|
|
21
|
+
|
|
22
|
+
from qiloback_mcp.tools import (
|
|
23
|
+
add_entity,
|
|
24
|
+
ai_generate_dsl,
|
|
25
|
+
create_project,
|
|
26
|
+
delete_project,
|
|
27
|
+
diff_dsl,
|
|
28
|
+
eject_project,
|
|
29
|
+
generate_backend,
|
|
30
|
+
generate_sdk,
|
|
31
|
+
get_audit_events,
|
|
32
|
+
get_component,
|
|
33
|
+
get_generation,
|
|
34
|
+
get_metrics,
|
|
35
|
+
get_project,
|
|
36
|
+
get_project_dsl,
|
|
37
|
+
health_check,
|
|
38
|
+
list_components,
|
|
39
|
+
list_generations,
|
|
40
|
+
list_projects,
|
|
41
|
+
list_templates,
|
|
42
|
+
migration_status,
|
|
43
|
+
review_dsl,
|
|
44
|
+
scan_frontend,
|
|
45
|
+
suggest_indexes,
|
|
46
|
+
update_dsl,
|
|
47
|
+
validate_dsl,
|
|
48
|
+
)
|
|
49
|
+
|
|
50
|
+
mcp = FastMCP(
|
|
51
|
+
"QiloBack",
|
|
52
|
+
instructions=(
|
|
53
|
+
"Backend manufacturing platform. Create, configure, and generate "
|
|
54
|
+
"production-grade FastAPI backends from YAML DSL definitions. "
|
|
55
|
+
"Bundle and download the result with the eject tool — no "
|
|
56
|
+
"QiloBack runtime dependency on the deployed backend."
|
|
57
|
+
),
|
|
58
|
+
)
|
|
59
|
+
|
|
60
|
+
# Project group
|
|
61
|
+
mcp.tool()(create_project)
|
|
62
|
+
mcp.tool()(get_project)
|
|
63
|
+
mcp.tool()(list_projects)
|
|
64
|
+
mcp.tool()(delete_project)
|
|
65
|
+
mcp.tool()(eject_project)
|
|
66
|
+
|
|
67
|
+
# DSL group
|
|
68
|
+
mcp.tool()(get_project_dsl)
|
|
69
|
+
mcp.tool()(update_dsl)
|
|
70
|
+
mcp.tool()(validate_dsl)
|
|
71
|
+
mcp.tool()(diff_dsl)
|
|
72
|
+
mcp.tool()(add_entity)
|
|
73
|
+
mcp.tool()(list_templates)
|
|
74
|
+
|
|
75
|
+
# Codegen group
|
|
76
|
+
mcp.tool()(generate_backend)
|
|
77
|
+
mcp.tool()(list_generations)
|
|
78
|
+
mcp.tool()(get_generation)
|
|
79
|
+
mcp.tool()(generate_sdk)
|
|
80
|
+
mcp.tool()(scan_frontend)
|
|
81
|
+
|
|
82
|
+
# Migration group
|
|
83
|
+
mcp.tool()(migration_status)
|
|
84
|
+
|
|
85
|
+
# Operations group
|
|
86
|
+
mcp.tool()(health_check)
|
|
87
|
+
mcp.tool()(get_audit_events)
|
|
88
|
+
mcp.tool()(get_metrics)
|
|
89
|
+
|
|
90
|
+
# AI group
|
|
91
|
+
mcp.tool()(ai_generate_dsl)
|
|
92
|
+
mcp.tool()(review_dsl)
|
|
93
|
+
mcp.tool()(suggest_indexes)
|
|
94
|
+
|
|
95
|
+
# Marketplace group
|
|
96
|
+
mcp.tool()(list_components)
|
|
97
|
+
mcp.tool()(get_component)
|
|
98
|
+
|
|
99
|
+
|
|
100
|
+
def main() -> None:
|
|
101
|
+
"""Entry point for the MCP server."""
|
|
102
|
+
mcp.run()
|
|
103
|
+
|
|
104
|
+
|
|
105
|
+
if __name__ == "__main__": # pragma: no cover — script-mode entry shim
|
|
106
|
+
main()
|