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 self
commands now useuv tool
instead ofpipx
for faster, more reliable installations. - Default project templates are configured to use
uv
by 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
init --no-base
option to skip creating the base template. - cli: Apply ruff linting and formating on init.
- config: Added
api_url
andcompatibility
fields to MCP config. - env: Added
DIPDUP_NO_BASE
environment variable to skip creating the base template. - mcp: Added Model Context Protocol (MCP) server implementation.
- mcp: Added
ctx.api
datasource andctx.call_api
helper 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.mcp
decorators.
Fixed
- api: Fixed configuring uvicorn logging.
- api: Strip secret fields from API responses.
- cli: Fixed
new
command using incorrect template. - cli: Fixed logging indexer status.
- 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 --base
option is now enabled by default. - cli:
install.py
script anddipdup self
commands useuv tool
instead ofpipx
. - cli:
new
command uses default values for somereplay.yaml
fields. - project: Replace
black
withruff
as default formatter. - project: Use
hatchling
build 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.