mirror of
https://github.com/Av0idD4rk/firegex.git
synced 2026-10-23 14:31:00 +00:00
Expose 28 tools with shared REST operations, role-scoped bearer authentication, revisions, durable retries, snapshots, jobs and timed rollback. Add Docker verification harnesses and setup/workflow documentation in docs/mcp.md and inst.md. Validated with 330 unit tests, two consecutive 25-case MCP/import runs, and restart recovery; the full upstream regression run remains incomplete.
34 lines
1.1 KiB
Python
34 lines
1.1 KiB
Python
"""Run inside Firegex: python3 -m mcp_api.tokens create --name laptop."""
|
|
import argparse
|
|
import json
|
|
from mcp_api.store import Store
|
|
|
|
|
|
def main():
|
|
parser = argparse.ArgumentParser(description=__doc__)
|
|
parser.add_argument("--db", help="Defaults to FIREGEX_MCP_DB or db/mcp/control.sqlite3")
|
|
sub = parser.add_subparsers(dest="action", required=True)
|
|
create = sub.add_parser("create")
|
|
create.add_argument("--name", required=True)
|
|
create.add_argument("--role", choices=["observer", "operator", "admin"], default="operator")
|
|
create.add_argument("--hours", type=float, default=168)
|
|
sub.add_parser("list")
|
|
sub.add_parser("revoke").add_argument("id")
|
|
args = parser.parse_args()
|
|
store = Store(args.db)
|
|
store.open()
|
|
try:
|
|
if args.action == "create":
|
|
value = store.token_create(args.name, args.role, args.hours)
|
|
elif args.action == "list":
|
|
value = store.token_list()
|
|
else:
|
|
value = {"revoked": store.token_revoke(args.id)}
|
|
print(json.dumps(value, indent=2))
|
|
finally:
|
|
store.close()
|
|
|
|
|
|
if __name__ == "__main__":
|
|
main()
|