Release Notes: 8.3
DipDup 8.3 brings several important improvements to enhance developer experience and expand integration capabilities. This release focuses on AI-assisted development with the Model Context Protocol, improved package management with uv, and standardized code quality tools.
Model Context Protocol
MCP is an open protocol that standardizes how applications provide context to LLMs. It enables AI tools to access and interact with your indexer data in real-time.
In this release, we've added a built-in MCP server to DipDup. This allows AI assistants like GitHub Copilot, Cursor, and Claude to understand your project's structure, schema, and current state.
We've prepared a complete guide on integrating DipDup with MCP to help you:
- Configure and run the DipDup MCP server
- Connect popular MCP clients (Cursor, VSCode, Claude)
- Implement custom tools and resources specific to your project
- Access real-time indexer data and metrics
Improved uv support
uv supportThe uv package manager support was introduced in DipDup 8.2 and has proven to be reliable and loved by developers.
In this release, we've enhanced the integration:
- The installer script and
dipdup selfcommands now useuv toolinstead ofpipxfor faster, more reliable installations. - Default project templates are configured to use
uvby default - Better handling of dependencies and virtual environments
To switch to uv in existing projects, update your configs/replay.yaml and run dipdup init --force.
uv build backend (see #3957, available separately as uv_build package) doesn't support non-standard layout of DipDup packages. Hatchling build backend handles both editable and non-editable builds correctly.Standardized linting and formatting
We've improved the integration of code quality tools that were already part of our default project templates. The key changes include:
- Replacing Black with Ruff Format as the default formatter for faster and more consistent results
- Better integration of linting and formatting tools with unified configurations (run on
dipdup init)
Our carefully selected ruleset helps maintain code quality without being too restrictive. Check pyproject.toml and adjust it to your liking if needed. We continue to invest in standardized tooling because developer time is the most valuable resource.
If you prefer to manage code quality tools manually, you can disable the built-in linting with DIPDUP_NO_LINTER environment variable or dipdup init --no-linter option.
Migrating from 8.2
Existing projects will continue to work with 8.3 without any modifications.
If you want to use recent improvements like the MCP server, uv package manager, and Ruff formatter, refresh your project template:
dipdup init --force
make install
This will update your project package with the latest template files while preserving your existing code (handlers, models, etc.). The -b flag tells DipDup to update the project base template, and -f forces the regeneration of supporting files.
Changes since 8.2
Added
- cli: Added
--nameoption tonewcommand to skip asking for the project name. - cli: Added
init --no-baseoption to skip creating the base template. - cli: Apply ruff linting and formating on init.
- config: Added
api_urlandcompatibilityfields to MCP config. - env: Added
DIPDUP_NO_BASEenvironment variable to skip creating the base template. - mcp: Added Model Context Protocol (MCP) server implementation.
- mcp: Added
ctx.apidatasource andctx.call_apihelper to server context. - mcp: Added built-in resources for accessing indexer configuration and metrics.
- mcp: Added support for exposing custom tools and resources via
@dipdup.mcpdecorators.
Fixed
- api: Fixed configuring uvicorn logging.
- api: Strip secret fields from API responses.
- cli: Fixed
initcommand not respecting--forceflag when generating default envfiles. - cli: Fixed
initcommand processing the same paths multiple times. - cli: Fixed
newcommand using incorrect template. - cli: Fixed detecting package name in existing projects without
replay.yamlfile. - cli: Fixed logging indexer status.
- cli: Fixed regression in
initcommand behavior when run without flags. - mcp: Expose resources as tools for clients that don't support MCP resources yet.
- mcp: Fixed handling exceptions in MCP tools.
- package: Create package marker even if helper symlink is present.
- project: Fixed built sdist/wheel artifacts which contained unrelated files.
- project: Fixed generation of compose manifest and configs for MCP environment.
Changed
- api: Built-in management API is now using Starlette instead of plain aiohttp.
- cli:
init --baseoption is now enabled by default. - cli:
install.pyscript anddipdup selfcommands useuv toolinstead ofpipx. - cli:
newcommand uses default values for somereplay.yamlfields. - project: Replace
blackwithruffas default formatter. - project: Use
hatchlingbuild backend for new projects.
See you soon! 👋
DipDup is a free open-source software created by the community and for the community. Join our socials to discuss this release, ask any questions, or participate in development.