Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
69 commits
Select commit Hold shift + click to select a range
65baa24
PSGO-268: chore: scaffold TypeScript rewrite (Phase 0)
Matovidlo Jun 26, 2026
8323ee1
PSGO-268: feat: add streamable-HTTP transport (Phase 1)
Matovidlo Jun 26, 2026
1b0c2e5
PSGO-268: feat: add Keboola client factory + service-URL derivation (…
Matovidlo Jun 26, 2026
2a120c2
PSGO-268: feat: add TOON output serializer + tool-registration helper
Matovidlo Jun 26, 2026
e7658cb
PSGO-268: feat: port ProjectLinksManager + component-id constants
Matovidlo Jun 26, 2026
3b857c2
PSGO-268: feat: port first real tool — update_project_description
Matovidlo Jun 26, 2026
82ca9df
PSGO-268: feat: port get_jobs tool (list + detail + logs)
Matovidlo Jun 26, 2026
c0236b4
PSGO-268: feat: add raw SAPI client + port update_descriptions
Matovidlo Jun 26, 2026
8d8e2d4
PSGO-268: feat: port run_job + fix get_jobs queue branch id
Matovidlo Jun 26, 2026
1d7893b
PSGO-268: feat: port create_oauth_url + pass string tool results thro…
Matovidlo Jun 26, 2026
0438953
PSGO-268: feat: port get_config_examples + raw AI client
Matovidlo Jun 26, 2026
00910f6
PSGO-268: feat: port docs_query tool
Matovidlo Jun 26, 2026
5b6f495
PSGO-268: feat: port find_component_id tool
Matovidlo Jun 26, 2026
46a4662
PSGO-268: feat: port get_components + component fetch/mapping + RawHt…
Matovidlo Jun 26, 2026
c34494a
PSGO-268: feat: port run_sync_action + raw sync-actions client
Matovidlo Jun 26, 2026
dbbb5ca
PSGO-268: feat: port get_configs + configuration model layer + secret…
Matovidlo Jun 26, 2026
036bdaf
chore(PSGO-268): add ajv/jose/dd-trace deps + tools-docs scripts
Matovidlo Jun 29, 2026
7952a51
feat(PSGO-268): client plumbing for the ported tools
Matovidlo Jun 29, 2026
f333d40
feat(PSGO-268): port storage reads, query_data, and the workspace layer
Matovidlo Jun 29, 2026
2102cb3
feat(PSGO-268): port component write tools + config validation
Matovidlo Jun 29, 2026
df374b9
feat(PSGO-268): port the flow module
Matovidlo Jun 29, 2026
c65ec12
feat(PSGO-268): port project, search, semantic, and data-app tools
Matovidlo Jun 29, 2026
7621b1f
feat(PSGO-268): port cross-cutting server infra
Matovidlo Jun 29, 2026
ea56072
docs(PSGO-268): TOOLS.md generator + regenerate for the 39 TS tools
Matovidlo Jun 29, 2026
cdf0bff
build(PSGO-268): Node Dockerfile + deployment env (build/run split)
Matovidlo Jun 29, 2026
cd0e1a0
ci(PSGO-268): convert CI to Node + npm publish
Matovidlo Jun 29, 2026
0531ff8
docs(PSGO-268): RFC for redis-leased per-case integtest project pool
Matovidlo Jun 29, 2026
102ea84
feat(PSGO-268): integtest project-pool harness (redis lease + fs fall…
Matovidlo Jun 29, 2026
c29496e
ci(PSGO-268): integtest pool config, export action, vitest config + docs
Matovidlo Jun 29, 2026
9269200
feat(PSGO-268): retry transient 5xx/429 on the api-client clients
Matovidlo Jun 29, 2026
a014025
feat(PSGO-268): rename lock env to TEST_MCP_PROJECTS_LOCK_* + redis t…
Matovidlo Jun 29, 2026
d468269
test(PSGO-268): port seed-free integtests (doc, project, sql) onto th…
Matovidlo Jun 29, 2026
2c6bf45
chore(PSGO-268): gitignore local integtest projects.json (real tokens)
Matovidlo Jun 29, 2026
b9fca9b
fix(PSGO-268): get_project_info provisions the workspace via Workspac…
Matovidlo Jun 29, 2026
066df3f
test(PSGO-268): add clean opt-out for non-mutating integtests
Matovidlo Jun 29, 2026
aeb653e
refactor(PSGO-268): expose typed ai/syncActions/dataScience clients
Matovidlo Jun 29, 2026
ae56f96
refactor(PSGO-268): decompose components module + migrate raw→typed c…
Matovidlo Jun 29, 2026
79aa14c
refactor(PSGO-268): decompose flow module + migrate config CRUD to ty…
Matovidlo Jun 29, 2026
a647933
refactor(PSGO-268): decompose data_apps module + migrate to typed dat…
Matovidlo Jun 29, 2026
7796ec5
refactor(PSGO-268): decompose semantic module
Matovidlo Jun 29, 2026
5065c2b
refactor(PSGO-268): decompose search module + migrate find_component_…
Matovidlo Jun 29, 2026
22419b0
refactor(PSGO-268): remove old monolith model/module files post-decom…
Matovidlo Jun 29, 2026
33085fa
test(PSGO-268): live integtest for find_component_id (typed ai.sugges…
Matovidlo Jun 29, 2026
c56b334
ci(PSGO-268): add separate integration_tests job + project pool template
Matovidlo Jun 29, 2026
35ded93
ci(PSGO-268): take integtest projects file path from vars.TEST_KBC_PR…
Matovidlo Jun 30, 2026
3f3ac85
ci(PSGO-268): point CI project pool at the integtest projects (2728/2…
Matovidlo Jun 30, 2026
cb9c754
ci(PSGO-268): update integtest project pool IDs (3053-3057)
Matovidlo Jun 30, 2026
3a2ffc2
test(PSGO-268): seed helper + storage integtests (verified live)
Matovidlo Jun 30, 2026
438886b
fix(PSGO-268): async bucket drop in integtest cleanProject
Matovidlo Jun 30, 2026
8e2284c
test(PSGO-268): port the integration-test suite to vitest (1:1 with P…
Matovidlo Jun 30, 2026
eefdd39
test(PSGO-268): fix integ failures surfaced by the live run
Matovidlo Jun 30, 2026
e0bff70
refactor(PSGO-268): decompose validation module
Matovidlo Jun 30, 2026
890bc1e
refactor(PSGO-268): decompose storage module + dialect-aware FQN (Big…
Matovidlo Jun 30, 2026
0ffe6af
chore(PSGO-268): remove the Python implementation
Matovidlo Jun 30, 2026
447c868
chore(PSGO-268): drop dead Python references after removal
Matovidlo Jun 30, 2026
aa85a11
test(PSGO-268): provision a workspace for the python-js data app inte…
Matovidlo Jul 1, 2026
ec0348f
docs(PSGO-268): RFC + architecture for pgvector docs-search (replace …
Matovidlo Jul 1, 2026
0136fbf
PSGO-268: feat: serve docs_query + find_component_id from pgvector do…
Matovidlo Jul 1, 2026
f595587
PSGO-268: docs: note sourceKey landed on keboola/ui#6672
Matovidlo Jul 1, 2026
2977124
PSGO-268: fix: skip docs_query integ without a configured index; docu…
Matovidlo Jul 1, 2026
f045645
PSGO-268: feat: local + CI docs index — docs:build, stub embedder, te…
Matovidlo Jul 1, 2026
67b53c5
PSGO-268: fix: run docs integ against docker-compose postgres; degate…
Matovidlo Jul 2, 2026
28d22f7
PSGO-268: fix: prod image boot (bundle api-client/dayjs) + full docke…
Matovidlo Jul 2, 2026
00b371b
PSGO-268: fix: surface api-client error detail in tool errors; quiet …
Matovidlo Jul 2, 2026
f373a9a
PSGO-268: feat: in-process local (HuggingFace) embedder + configurabl…
Matovidlo Jul 2, 2026
399cd4f
PSGO-268: feat: log a redacted config/env dump at startup
Matovidlo Jul 13, 2026
3e5db03
PSGO-268: feat: docs:crawl — build a real local docs index from the p…
Matovidlo Jul 13, 2026
79aa105
PSGO-268: fix: bound docs_query payload (extractive fallback dumped f…
Matovidlo Jul 13, 2026
fe4f68e
PSGO-268: feat: emit docs-crawl as a production build entrypoint
Matovidlo Jul 21, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
25 changes: 25 additions & 0 deletions .dockerignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@
node_modules
dist
.git
.github
__tests__
tests
src/keboola_mcp_server
3.10.venv
3.12.venv
.venv
.tox
.mypy_cache
.pytest_cache
*.venv
coverage.xml
.coverage
test-results.xml
feature_spec
docs
*.md
!README.md
.env
.mcp.json
uv.lock
pyproject.toml
30 changes: 30 additions & 0 deletions .github/actions/export-kbc-projects/action.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,30 @@
name: 'Export kbc projects with secrets'
description: 'Generates projects.json from .github/ci/projects.json, substituting TEST_KBC_PROJECT_* secrets'
inputs:
secrets:
description: workflow secrets (pass `toJSON(secrets)`)
required: true
outputs:
projects-file:
description: Absolute path to the generated projects.json
value: ${{ steps.gen.outputs.projects-file }}
runs:
using: 'composite'
steps:
- name: Generate projects.json file, replace secrets
id: gen
shell: bash
run: |
# Export every TEST_KBC_PROJECT_* secret as an env var, then envsubst the template.
jqQuery='to_entries[] | select(.key | startswith("TEST_KBC_PROJECT_")) | "\(.key)=\(.value|tostring) "'
export $(
(jq -r -j "$jqQuery") << EndOfSecrets
${{ inputs.secrets }}
EndOfSecrets
)

envsubst < .github/ci/projects.json > projects.json

# Stable mtime so test caching is not invalidated by regeneration.
touch -d '1970-01-01T00:00:01' projects.json
echo "projects-file=$(pwd)/projects.json" >> "$GITHUB_OUTPUT"
37 changes: 37 additions & 0 deletions .github/ci/projects.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,37 @@
[
{
"host": "connection.europe-west3.gcp.keboola.com",
"project": 3053,
"stagingStorage": "gcs",
"backend": "snowflake",
"token": "$TEST_KBC_PROJECT_3053_TOKEN"
},
{
"host": "connection.europe-west3.gcp.keboola.com",
"project": 3054,
"stagingStorage": "gcs",
"backend": "snowflake",
"token": "$TEST_KBC_PROJECT_3054_TOKEN"
},
{
"host": "connection.europe-west3.gcp.keboola.com",
"project": 3056,
"stagingStorage": "gcs",
"backend": "bigquery",
"token": "$TEST_KBC_PROJECT_3056_TOKEN"
},
{
"host": "connection.europe-west3.gcp.keboola.com",
"project": 3057,
"stagingStorage": "gcs",
"backend": "bigquery",
"token": "$TEST_KBC_PROJECT_3057_TOKEN"
},
{
"host": "connection.europe-west3.gcp.keboola.com",
"project": 3055,
"stagingStorage": "gcs",
"backend": "snowflake",
"token": "$TEST_KBC_PROJECT_3055_TOKEN"
}
]
8 changes: 3 additions & 5 deletions .github/dependabot.yml
Original file line number Diff line number Diff line change
Expand Up @@ -4,13 +4,11 @@
# Cooldown (supply-chain hardening): Dependabot will not open an update PR for a
# version until it has been published for at least `default-days` days. Most
# malicious package releases are detected and yanked within this window, so we
# avoid pulling a freshly published (potentially compromised) version. This
# mirrors the `exclude-newer = "7 days"` setting in pyproject.toml [tool.uv],
# which guards manual `uv lock` regeneration.
# avoid pulling a freshly published (potentially compromised) version.
version: 2
updates:
# Python dependencies managed via uv / pyproject.toml + uv.lock
- package-ecosystem: "uv"
# npm dependencies managed via package.json + package-lock.json
- package-ecosystem: "npm"
directory: "/"
schedule:
interval: "weekly"
Expand Down
42 changes: 0 additions & 42 deletions .github/scripts/kaibench-cost-guardrails.py

This file was deleted.

53 changes: 0 additions & 53 deletions .github/scripts/kaibench-parse-results.py

This file was deleted.

Loading
Loading