feat: LLM provider configuration, secret store, and setup wizard #39

Merged
michal merged 1 commits from feat/llm-config-and-secrets into main 2026-02-24 22:48:40 +00:00
Owner

Summary

  • Add secure credential storage with GNOME Keyring backend and file-based fallback (~/.mcpctl/secrets)
  • Extend config schema with LLM provider section (provider/model/url/binaryPath)
  • Interactive setup wizard (mcpctl config setup) with arrow-key selection for providers and models
  • Dynamic model fetching from Ollama and vLLM at setup time
  • Provider factory wires configured LLM into mcplocal for smart pagination summaries
  • mcpctl status shows LLM config line with hint when not configured

Test plan

  • shared: 31 tests (SecretStore CRUD, chmod 600, GNOME Keyring mocked, factory auto-detect)
  • mcplocal: 217 tests (provider factory, loadLlmConfig, pagination integration)
  • cli: 324 tests (setup wizard all providers, status LLM line, existing tests pass)

🤖 Generated with Claude Code

## Summary - Add secure credential storage with GNOME Keyring backend and file-based fallback (~/.mcpctl/secrets) - Extend config schema with LLM provider section (provider/model/url/binaryPath) - Interactive setup wizard (`mcpctl config setup`) with arrow-key selection for providers and models - Dynamic model fetching from Ollama and vLLM at setup time - Provider factory wires configured LLM into mcplocal for smart pagination summaries - `mcpctl status` shows LLM config line with hint when not configured ## Test plan - [x] shared: 31 tests (SecretStore CRUD, chmod 600, GNOME Keyring mocked, factory auto-detect) - [x] mcplocal: 217 tests (provider factory, loadLlmConfig, pagination integration) - [x] cli: 324 tests (setup wizard all providers, status LLM line, existing tests pass) 🤖 Generated with [Claude Code](https://claude.com/claude-code)
michal added 1 commit 2026-02-24 22:48:34 +00:00
feat: LLM provider configuration, secret store, and setup wizard
Some checks failed
CI / lint (pull_request) Has been cancelled
CI / typecheck (pull_request) Has been cancelled
CI / test (pull_request) Has been cancelled
CI / build (pull_request) Has been cancelled
CI / package (pull_request) Has been cancelled
7c23da10c6
Add secure credential storage (GNOME Keyring + file fallback),
LLM provider config in ~/.mcpctl/config.json, interactive setup
wizard (mcpctl config setup), and wire configured provider into
mcplocal for smart pagination summaries.

- Secret store: SecretStore interface, GnomeKeyringStore, FileSecretStore
- Config schema: LlmConfigSchema with provider/model/url/binaryPath
- Setup wizard: arrow-key provider/model selection, dynamic model fetch
- Provider factory: creates ProviderRegistry from config + secrets
- Status: shows LLM line with hint when not configured
- 572 tests passing across all packages

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
michal merged commit 04d115933b into main 2026-02-24 22:48:40 +00:00
Sign in to join this conversation.
No Reviewers
No Label
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: michal/mcpctl#39