feat: add read-only plugins commands (list/get/stats)#18
Merged
gabe-l-hart merged 5 commits intocontextforge-org:mainfrom Feb 11, 2026
Merged
Conversation
Introduce `cforge plugins` command group (list, get, stats) backed by the gateway's /admin/plugins endpoints. Includes full test coverage and README documentation. Signed-off-by: Matthew Grigsby <38010437+MatthewGrigsby@users.noreply.github.com>
Signed-off-by: Matthew Grigsby <38010437+MatthewGrigsby@users.noreply.github.com>
Signed-off-by: Matthew Grigsby <38010437+MatthewGrigsby@users.noreply.github.com>
93afb7f to
431fc2b
Compare
gabe-l-hart
requested changes
Feb 10, 2026
Collaborator
gabe-l-hart
left a comment
There was a problem hiding this comment.
This is great, thanks for adding it! A couple of small comments and a unit test request, but the functionality looks good.
- Use case-insensitive PluginMode enum for --mode
- Assume /admin/plugins response shape ({"plugins": [...]})
- Update tests to use invoke_typer_command for accurate option defaults/coverage
Signed-off-by: Matthew Grigsby <38010437+MatthewGrigsby@users.noreply.github.com>
Signed-off-by: Matthew Grigsby <38010437+MatthewGrigsby@users.noreply.github.com>
gabe-l-hart
approved these changes
Feb 11, 2026
Collaborator
gabe-l-hart
left a comment
There was a problem hiding this comment.
This is great, thanks Matt!
| ) | ||
|
|
||
|
|
||
| class _CaseInsensitiveEnum(str, Enum): |
Collaborator
There was a problem hiding this comment.
Interesting! I think we might want to hoist this to common.py and make it a standard practice for all places that we use an enum for explicit choices. That can happen later though.
| cforge plugins stats | ||
| ``` | ||
|
|
||
| Plugin commands call `/admin/plugins` endpoints and require: |
Collaborator
There was a problem hiding this comment.
Nice, thanks for adding this!
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Addresses #8
Adds a new
cforge pluginscommand group (list/get/stats) backed by the gateway admin plugin endpoints (/admin/plugins).Notes
mcp-context-forgeloads plugins from YAML at app startup and does not yet expose write endpoints for plugin CRUD/management.MCPGATEWAY_ADMIN_API_ENABLED=trueon the gateway and a token withadmin.pluginspermission.Testing
cforge plugins(mocked HTTP).mcp-context-forgeinstance with aDenyListPluginconfigured.