Skip to content

feat(cli): add tool config list <ref|path> and fix OAuth re-auth#93

Merged
appcypher merged 1 commit intomainfrom
appcypher/config-list-tool-schema
Feb 5, 2026
Merged

feat(cli): add tool config list <ref|path> and fix OAuth re-auth#93
appcypher merged 1 commit intomainfrom
appcypher/config-list-tool-schema

Conversation

@appcypher
Copy link
Copy Markdown
Member

@appcypher appcypher commented Feb 5, 2026

Summary

  • Extends tool config list to accept an optional <ref|path> argument, displaying the config schema (user_config fields + OAuth status) for a specific tool with human-readable, concise (-c), and JSON (--json) output modes
  • Adds JSON output support (--json) for the existing tool config list (no tool specified) command
  • Fixes OAuth re-authentication bug where spawned HTTP servers unnecessarily triggered a full OAuth flow on every connection instead of reusing stored credentials

Test plan

  • Run tool config list and verify it lists all configured tools
  • Run tool config list --json and verify JSON output with tools map
  • Run tool config list <ref> (e.g. tool config list appcypher/bash) and verify human-readable schema output with name + description on first line, properties on subsequent · lines
  • Run tool config list <ref> -c for concise TSV output
  • Run tool config list <ref> --json for JSON output with user_config and optional oauth fields
  • Run tool config list <path> with a local path to verify path-based resolution works
  • Run tool info auth on an HTTP tool and verify it no longer re-authenticates every time

Extend `tool config list` to accept an optional tool reference or
path, displaying the tool's user_config schema with all field
properties (type, title, description, default, sensitive, min/max,
enum). Supports --json and --concise/-c output modes.

- Add optional [TOOL] arg and --json flag to ConfigCommand::List
- Add config_list_tool() to resolve a tool and render its schema
- Add JSON output types: ConfigSchemaOutput, ConfigPropertyOutput,
  ConfigListOutput, ConfigListEntry, ConfigOAuthOutput
- Show OAuth credential status (authenticated/expired) for HTTP
  tools in all output modes
- Human-readable output follows tool-list style: name + description
  on first line, properties as bullet lines below
- Skip redundant stored-credentials attempt in AuthRequired branch
  of connect_with_oauth (reference-mode already tried; spawned
  servers are fresh instances that reject old tokens)
- Simplify StoredCredentialsResult::NotAvailable to unit variant
- Update README with config list, config unset, logout, whoami,
  and self command documentation
@appcypher appcypher merged commit c98905e into main Feb 5, 2026
6 checks passed
@appcypher appcypher deleted the appcypher/config-list-tool-schema branch February 5, 2026 18:05
appcypher added a commit that referenced this pull request Feb 6, 2026
Changes since v0.1.13:

Features:
- Add progress bars to tool pack with improved UX (#97)
- Add --json and --concise support to tool config get (#95)
- Add OpenCode as supported MCP host (#94)
- Add tool config list <ref|path> command (#93)
- Implement all template functions and auto-install local tools (#91)

Fixes:
- Pass Authorization header from manifest to HTTP transport (#96)
- Fix OAuth re-authentication flow (#93)
- Correct config path derivation for path-resolved tools (#92)
appcypher added a commit that referenced this pull request Feb 6, 2026
Changes since v0.1.13:

Features:
- Add progress bars to tool pack with improved UX (#97)
- Add --json and --concise support to tool config get (#95)
- Add OpenCode as supported MCP host (#94)
- Add tool config list <ref|path> command (#93)
- Implement all template functions and auto-install local tools (#91)

Fixes:
- Pass Authorization header from manifest to HTTP transport (#96)
- Fix OAuth re-authentication flow (#93)
- Correct config path derivation for path-resolved tools (#92)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant