"""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()