Integrations
Import the tools your application can call, then decide where those calls should produce ActionReceipts.
Bulla 0.48.0 includes these adapters. MCP host readers find local configuration files, while framework adapters read tool definitions from source. Both produce the same manifest format.
Package version used on this page
The command shown here comes from the package published on PyPI, not from unreleased repository code.
Current package contents include 7 host readers and 3 framework adapters. They perform local discovery and do not form a marketplace or provider registry. Static parsing cannot see tools created only while an application is running.
Limits of static discovery
These adapters come from the published package. Static analysis cannot see tools created only while an application is running.
MCP hosts
Bulla can read supported MCP host configuration files on the current machine. Auto-detection tries each registered host and uses the first matching configuration. Pass --host NAME to choose one explicitly, or run bulla hosts list to see what Bulla found.
Cursor
cursor~/.cursor/mcp.json · .cursor/mcp.json (workspace)
Top-level mcpServers. Workspace-level config takes precedence over user-level.
Claude Code
claude-code~/.claude/settings.json · .claude/settings.json (workspace)
Top-level mcpServers or nested mcp.servers. Cross-platform.
Cline
cline<editor>/User/globalStorage/saoudrizwan.claude-dev/settings/cline_mcp_settings.json
The same extension is scanned across Code, Code Insiders, Cursor, Windsurf, and VSCodium.
Claude Desktop
claude-desktop~/Library/Application Support/Claude/... · ~/.config/Claude/... · %APPDATA%/Claude/...
Top-level mcpServers. Cross-platform.
Zed
zed~/.config/zed/settings.json · %APPDATA%/Zed/settings.json
Servers are nested under context_servers.
Windsurf
windsurf~/.codeium/windsurf/mcp_config.json
Top-level mcpServers. Cross-platform through the Codeium config directory.
OpenAI Codex
codex~/.codex/config.toml · .codex/config.toml (workspace)
TOML format with [mcp_servers.<name>] tables.
$ bulla hosts list
$ bulla audit # auto-detect
$ bulla audit --host claude-code # force a specific host
$ bulla audit --host zed cfg.jsonFramework adapters
Agent frameworks often declare tools in Python instead of a configuration file. Bulla reads common source patterns without executing the application and writes a manifest. It cannot see tools assembled dynamically at runtime.
Anthropic Messages API
anthropic-messages.json or a top-level Python tools literal
Direct mapping from name, description, and input_schema dictionaries.
LangGraph / LangChain
langgraphPython source file or directory
@tool, BaseTool subclasses, and StructuredTool.from_function.
CrewAI
crewaiPython source file or directory
@tool and BaseTool declarations with name, description, and args_schema.
$ bulla frameworks list
$ bulla import langgraph workflow.py --out manifest.json
$ bulla import crewai agents/ --audit
$ bulla import anthropic-messages tools.json --auditOptional dependencies
Core pip install bulla has no framework dependencies. Source parsing uses the Python standard library. Optional extras add framework-specific schema helpers:
$ pip install bulla[langgraph]
$ pip install bulla[crewai]
$ pip install bulla[all]Adding an integration
Host readers and framework adapters each use a small registered module. See bulla/docs/HOSTS.md and bulla/docs/FRAMEWORKS.md for the interface and a worked example.
Potential additions include Cody, Aider, Goose, Roo Code, Continue, AG2/AutoGen, Mastra, LlamaIndex, and Pydantic AI. A typical adapter adds one registered module, a fixture, and a test.