[PR #11] [MERGED] feat(mcp): implement MCP server with 210 tools for full platform management #19

Closed
opened 2026-03-02 05:12:33 +03:00 by kerem · 0 comments
Owner

📋 Pull Request Information

Original PR: https://github.com/gotempsh/temps/pull/11
Author: @dviejokfs
Created: 2/18/2026
Status: Merged
Merged: 2/18/2026
Merged by: @dviejokfs

Base: mainHead: feat/mcp-server


📝 Commits (7)

  • 60a9e0c feat(mcp): implement MCP server with 210 tools for full platform management
  • d2497a7 fix(skill): address security audit findings in temps-cli skill
  • 3c7bc8e docs(changelog): add MCP server and security audit entries to changelog
  • 90c7b24 fix(cli): escape curly braces in MDX docs output and remove credential path
  • b682307 fix(cli): correct package name and command references in CLI docs
  • 3b61cd4 fix(mcp): fix get_deployment_logs to fetch and parse JSONL log content
  • cee4557 chore(mcp): update version to 0.1.3 and enhance CLI help documentation

📊 Changes

95 files changed (+43813 additions, -3222 deletions)

View changed files

📝 CHANGELOG.md (+12 -0)
📝 CLAUDE.md (+674 -2783)
📝 apps/temps-cli/docs/CLI.md (+15 -19)
📝 apps/temps-cli/docs/CLI.mdx (+15 -19)
📝 apps/temps-cli/package.json (+1 -1)
📝 apps/temps-cli/scripts/generate-docs.ts (+30 -25)
📝 apps/temps-cli/src/commands/docs.ts (+30 -25)
📝 apps/temps-cli/src/ui/table.ts (+6 -0)
📝 crates/temps-providers/src/externalsvc/mod.rs (+12 -0)
📝 crates/temps-providers/src/handlers/query_handlers.rs (+28 -0)
📝 crates/temps-providers/src/handlers/types.rs (+20 -2)
📝 crates/temps-providers/src/parameter_strategies.rs (+172 -6)
📝 crates/temps-providers/src/query_service.rs (+53 -24)
📝 crates/temps-providers/src/services.rs (+53 -16)
mcp/.npmrc (+3 -0)
📝 mcp/bun.lock (+95 -0)
📝 mcp/mcp-config-example.json (+5 -1)
mcp/openapi-ts.config.ts (+15 -0)
mcp/openapi.json (+1 -0)
📝 mcp/package.json (+15 -4)

...and 75 more files

📄 Description

Summary

  • Add a complete MCP (Model Context Protocol) server (mcp/) that mirrors the Temps CLI, exposing 210 tools across 30 domain modules for AI agents to manage the entire Temps platform programmatically
  • OpenAPI SDK auto-generated via @hey-api/openapi-ts; hand-written TempsClient with REST + WebSocket support for container logs
  • 103 integration tests, all passing against the dev instance
  • Published as @temps-sdk/mcp (executable via npx/bunx)

Additional changes

  • providers: auto-generate secret_key for MinIO, refine parameter strategies for service creation
  • web: add RustFS service logo, improve service type detection across project configurators
  • cli: add table header styling helper
  • CLAUDE.md: comprehensive rewrite covering error handling, resilience patterns, and testing guidance
  • scripts: add analytics seed data utilities (add-visitors, backfill-recent, boost-today)

MCP Server Architecture

src/
├── index.ts              # MCP server entry point (stdio transport)
├── api/
│   ├── client.ts         # TempsClient (GET/POST/PUT/PATCH/DELETE/WS)
│   └── generated/        # OpenAPI SDK (422 functions, 24K lines of types)
├── tools/
│   ├── index.ts          # Tool registry with O(1) dispatch map
│   ├── _helpers.ts       # Shared helpers (ok, err, json, table, etc.)
│   └── [30 modules].ts   # projects, deployments, environments, domains, ...
├── handlers/             # MCP protocol handlers
├── prompts/              # Prompt definitions + markdown templates
└── test/
    └── integration.ts    # 103 integration tests

How to use

{
  "mcpServers": {
    "temps": {
      "command": "npx",
      "args": ["@temps-sdk/mcp"],
      "env": {
        "TEMPS_API_URL": "https://your-instance.example.com",
        "TEMPS_API_KEY": "your-api-key-here"
      }
    }
  }
}

🔄 This issue represents a GitHub Pull Request. It cannot be merged through Gitea due to API limitations.

## 📋 Pull Request Information **Original PR:** https://github.com/gotempsh/temps/pull/11 **Author:** [@dviejokfs](https://github.com/dviejokfs) **Created:** 2/18/2026 **Status:** ✅ Merged **Merged:** 2/18/2026 **Merged by:** [@dviejokfs](https://github.com/dviejokfs) **Base:** `main` ← **Head:** `feat/mcp-server` --- ### 📝 Commits (7) - [`60a9e0c`](https://github.com/gotempsh/temps/commit/60a9e0c2b390ae3b76b46609f66be83830cb6852) feat(mcp): implement MCP server with 210 tools for full platform management - [`d2497a7`](https://github.com/gotempsh/temps/commit/d2497a7e2f6b2e79970853b97502d7fee9bf4021) fix(skill): address security audit findings in temps-cli skill - [`3c7bc8e`](https://github.com/gotempsh/temps/commit/3c7bc8e11f85db6ff898a3ef0e5885a04fc6b1d2) docs(changelog): add MCP server and security audit entries to changelog - [`90c7b24`](https://github.com/gotempsh/temps/commit/90c7b24cb57b36bc1da8da5e23674c73fc3e3502) fix(cli): escape curly braces in MDX docs output and remove credential path - [`b682307`](https://github.com/gotempsh/temps/commit/b682307a3f685ef76b0ca653bf6e7c51b88f108d) fix(cli): correct package name and command references in CLI docs - [`3b61cd4`](https://github.com/gotempsh/temps/commit/3b61cd485fad9d1d529715ad746111eb6670614c) fix(mcp): fix get_deployment_logs to fetch and parse JSONL log content - [`cee4557`](https://github.com/gotempsh/temps/commit/cee4557dfac0a99a649598cae34af82e4563d729) chore(mcp): update version to 0.1.3 and enhance CLI help documentation ### 📊 Changes **95 files changed** (+43813 additions, -3222 deletions) <details> <summary>View changed files</summary> 📝 `CHANGELOG.md` (+12 -0) 📝 `CLAUDE.md` (+674 -2783) 📝 `apps/temps-cli/docs/CLI.md` (+15 -19) 📝 `apps/temps-cli/docs/CLI.mdx` (+15 -19) 📝 `apps/temps-cli/package.json` (+1 -1) 📝 `apps/temps-cli/scripts/generate-docs.ts` (+30 -25) 📝 `apps/temps-cli/src/commands/docs.ts` (+30 -25) 📝 `apps/temps-cli/src/ui/table.ts` (+6 -0) 📝 `crates/temps-providers/src/externalsvc/mod.rs` (+12 -0) 📝 `crates/temps-providers/src/handlers/query_handlers.rs` (+28 -0) 📝 `crates/temps-providers/src/handlers/types.rs` (+20 -2) 📝 `crates/temps-providers/src/parameter_strategies.rs` (+172 -6) 📝 `crates/temps-providers/src/query_service.rs` (+53 -24) 📝 `crates/temps-providers/src/services.rs` (+53 -16) ➕ `mcp/.npmrc` (+3 -0) 📝 `mcp/bun.lock` (+95 -0) 📝 `mcp/mcp-config-example.json` (+5 -1) ➕ `mcp/openapi-ts.config.ts` (+15 -0) ➕ `mcp/openapi.json` (+1 -0) 📝 `mcp/package.json` (+15 -4) _...and 75 more files_ </details> ### 📄 Description ## Summary - Add a complete MCP (Model Context Protocol) server (`mcp/`) that mirrors the Temps CLI, exposing **210 tools across 30 domain modules** for AI agents to manage the entire Temps platform programmatically - OpenAPI SDK auto-generated via `@hey-api/openapi-ts`; hand-written `TempsClient` with REST + WebSocket support for container logs - **103 integration tests**, all passing against the dev instance - Published as `@temps-sdk/mcp` (executable via `npx`/`bunx`) ## Additional changes - **providers**: auto-generate `secret_key` for MinIO, refine parameter strategies for service creation - **web**: add RustFS service logo, improve service type detection across project configurators - **cli**: add table header styling helper - **CLAUDE.md**: comprehensive rewrite covering error handling, resilience patterns, and testing guidance - **scripts**: add analytics seed data utilities (`add-visitors`, `backfill-recent`, `boost-today`) ## MCP Server Architecture ``` src/ ├── index.ts # MCP server entry point (stdio transport) ├── api/ │ ├── client.ts # TempsClient (GET/POST/PUT/PATCH/DELETE/WS) │ └── generated/ # OpenAPI SDK (422 functions, 24K lines of types) ├── tools/ │ ├── index.ts # Tool registry with O(1) dispatch map │ ├── _helpers.ts # Shared helpers (ok, err, json, table, etc.) │ └── [30 modules].ts # projects, deployments, environments, domains, ... ├── handlers/ # MCP protocol handlers ├── prompts/ # Prompt definitions + markdown templates └── test/ └── integration.ts # 103 integration tests ``` ## How to use ```json { "mcpServers": { "temps": { "command": "npx", "args": ["@temps-sdk/mcp"], "env": { "TEMPS_API_URL": "https://your-instance.example.com", "TEMPS_API_KEY": "your-api-key-here" } } } } ``` --- <sub>🔄 This issue represents a GitHub Pull Request. It cannot be merged through Gitea due to API limitations.</sub>
kerem 2026-03-02 05:12:33 +03:00
Sign in to join this conversation.
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
starred/temps#19
No description provided.