Skip to main content

Moddy Desktop MCP tools reference

When you connect an AI assistant (e.g., Claude) to Moddy Desktop, it can do more than just answer questions - it can actually analyze and modify your code.

This happens through the Model Context Protocol (MCP). Moddy Desktop exposes 8 tools that let AI assistants search through Moderne's recipe catalog, execute recipes across multiple repositories, query the data tables that recipes generate, and apply the resulting code changes - all through natural conversation.

To help you get the results you want when querying AI tools, this doc will contain specific reference details for every MCP tool we offer.

Server information

If you're configuring an MCP client or troubleshooting connection issues, here are the server details you'll need:

Available tools

About Moddy Thread Id

Every tool requires a moddyThreadId parameter. This is a UUID that identifies your conversation. The same UUID should be used across all tool calls in a session. If different thread IDs are used, Moddy Desktop will treat them as separate conversations in your chat history.

1. findRecipes

When you ask for help finding a recipe, this is the tool your AI assistant reaches for. It searches Moderne's recipe catalog and returns matching recipes for code analysis, security scanning, refactoring, and more.

Parameters:

ParameterTypeRequiredDescription
querystringYesDescribe what recipes you're looking for. Starting with "find" or "change" often gives better results.
moddyThreadIdstringYesConversation thread ID.

Try asking:

Find me recipes that can detect Spring Boot usage across my repositories.

2. describeRecipeDataTables

When you want to know what data a recipe can produce before running it, your AI assistant uses this tool. It returns detailed information about the recipe's data tables, including column descriptions and structure.

Parameters:

ParameterTypeRequiredDescription
recipeIdstringYesThe recipe ID to describe.
moddyThreadIdstringYesConversation thread ID.

Try asking:

Show me what data tables the org.openrewrite.java.search.FindTypes recipe can generate.

Or you could also make a more generic request - which would theoretically invoke the findRecipes tool in combination with this one:

Show me what data tables the "Find Types" recipe can generate.

3. runRecipe

When you want to run a recipe, your AI assistant uses this tool. It runs the recipe across every repository in the target directory in parallel. It also will collect analysis data that can be accessed in the future to tell what happened.

Parameters:

ParameterTypeRequiredDescription
targetDirectorystringYesThe fully qualified path to the directory containing your repositories.
recipeIdstringYesThe recipe ID to execute.
moddyThreadIdstringYesConversation thread ID.
optionsarrayNoSome recipes have options to let you customize the output. Provide them with a name-value pair to configure this.

Try asking:

Run the org.openrewrite.java.search.FindTypes recipe with the fullyQualifiedTypeName option 
set to org.apache.commons.lang3.StringUtils and the checkAssignability option set to
true on my repositories in /Users/myname/repos.

4. generateCsv

After running a recipe, your AI assistant can use this tool to convert the results into a structured CSV file. The CSV includes file paths, line numbers, and code context - making it easy to query with SQL or visualize the data.

Parameters:

ParameterTypeRequiredDescription
targetDirectorystringYesThe fully qualified path to the directory containing your repositories.
dataTablestringYesThe name of the data table to generate from the recipe run.
moddyThreadIdstringYesConversation thread ID.

Try asking:

Generate the TypeUses data table as a CSV from the last recipe run.

5. analyzeCsv

Once you have a CSV data table, your AI assistant can use this tool to run SQL queries against it. This lets you answer complex questions about code patterns across repositories using SQLite syntax.

Parameters:

ParameterTypeRequiredDescription
dataTablePathstringYesThe fully qualified path to the CSV data table file.
sqlQuerystringYesThe SQL query to execute. Please make sure to use csv_data as the table name.
moddyThreadIdstringYesConversation thread ID.

Try asking:

Run a SQL query on the /Users/myname/repos/data-table.csv data table to count occurrences by repository: SELECT repository, COUNT(*) as count FROM csv_data GROUP BY repository ORDER BY count DESC.

6. createBarChart

Your AI assistant can use this tool to generate interactive bar charts and histograms to visually analyze your code. These charts are displayed directly in the Moddy Desktop application and they're great for spotting patterns like technical debt hotspots.

Parameters:

ParameterTypeRequiredDescription
dataarray of numbersYesThe numeric data to plot.
moddyThreadIdstringYesConversation thread ID.
binsnumberNoThe number of bins for the histogram.
binLabelsarray of stringsNoThe labels for each bin.
titlestringNoThe chart title.
xAxisLabelstringNoThe X-axis label.
yAxisLabelstringNoThe Y-axis label.

Try asking:

Create a bar chart that shows the top 10 files with the most occurrences, using the repository names as labels.

7. getRemoteFile

When you need to look at a specific file from a remote repository, your AI assistant can use this tool to fetch it without cloning the entire repo. It uses sparse checkout to grab just the file you need. This is particularly useful when you want to examine files referenced in recipe data tables.

Parameters:

ParameterTypeRequiredDescription
workingDirectorystringYesThe local directory where the file will be saved.
repositoryOriginstringYesThe Git repository origin (e.g., github.com).
repositoryPathstringYesThe repository path (e.g., neo4j/neo4j).
repositoryBranchstringYesThe branch to checkout (e.g., release/5.26.0).
sourceFilestringYesThe file path relative to the repository root.
moddyThreadIdstringYesConversation thread ID.

Try asking:

Get the file at path community/collections/test.yml from the github.com/neo4j/neo4j repository on the release/5.26.0 branch.

8. applyPatch

When a recipe generates code changes, your AI assistant can use this tool to apply the changes to your project. Without applying a patch, your code wouldn't actually be changed when a recipe is run.

warning

This is a destructive operation that modifies files in your project. Make sure you have a clean git state or backups before applying patches.

Parameters:

ParameterTypeRequiredDescription
directoryPathstringYesThe path to the project directory where changes should be applied.
recipeRunIdstringYesThe ID of the recipe run containing the changes.
moddyThreadIdstringYesConversation thread ID.

Try asking:

Apply the changes from recipe run ID 20250710121622-dibSY to my project at /Users/myname/myproject.

Additional resources