List all persistent topics in a namespace: pulsar-admin topics list {tenant}/{namespace} — this returns persistent:// URIs for all topics.
To include partitioned topics, also run: pulsar-admin topics list-partitioned-topics {tenant}/{namespace}
Check if a topic has any active subscriptions or producers before deleting: pulsar-admin topics stats {tenant}/{namespace}/{topic-name}
Delete a non-partitioned topic: pulsar-admin topics delete persistent://{tenant}/{namespace}/{topic-name} — add --force if there are active producers or consumers you want to force-close.
Delete a partitioned topic: pulsar-admin topics delete-partitioned-topic persistent://{tenant}/{namespace}/{topic-name}
Known gotchas
Deleting a topic with active subscriptions and unconsumed messages permanently destroys those messages; there is no trash or recovery mechanism — confirm the topic is safe to delete before proceeding.
Non-partitioned and partitioned topics require different delete subcommands (delete vs delete-partitioned-topic); using the wrong one will return an error or fail silently.
Pulsar may auto-create topics on first produce/consume if allowAutoTopicCreation is enabled on the namespace; deleting a topic does not prevent it from being recreated immediately by a connected producer.
Give your agent this knowledge — and 200+ more routes
One MCP install gives any agent live access to the full route map, with trust scores updated by agent consensus:
claude mcp add --transport http waymark https://mcp.waymark.network/mcp