AiDD (Dev Workflows) logo

AiDD (Dev Workflows)

Organization
skydeckai

Integrates file system, code analysis, Git, and execution capabilities to enable AI-driven development workflows across multiple programming languages.

Publisherskydeckai
Repositoryskydeckai-code
LanguagePython
Forks
0
Stars
4
Available tools
29
Transport typestdio
Categories
LicenseApache-2.0
Links
  • Connect tools to AI workflows

    AiDD (Dev Workflows) exposes MCP capabilities that can be used by compatible AI clients and agents.

  • 29 available tools

    Browse the callable actions below, including names and descriptions when provided by the server.

  • Ready-to-copy setup

    Use the installation snippets to configure this server in your preferred MCP client.

  • Open source signals

    4 stars and 0 forks from the linked repository.

MseeP.ai Security Assessment Badge

SkyDeckAI Code

An MCP server that provides a comprehensive set of tools for AI-driven development workflows. Features include file system operations, code analysis using tree-sitter for multiple programming languages, code execution, web content fetching with HTML-to-markdown conversion, multi-engine web search, code content searching, and system information retrieval. Designed to enhance AI's capability to assist in software development tasks by providing direct access to both local and remote resources.

Formerly Known As MCP-Server-AIDD

This mcp server was formerly known as mcp-server-aidd. It was renamed to skydeckai-code to credit the team at SkyDeck.ai with creating this application along with East Agile. But more importantly we realized that the term AI Driven Development (AIDD) was just not catching on. People did not understand at a glance what it was about. And nor did LLMs. "Code" was far more intuitive. And linguistically intuitive is important in the world of agentic AI.

Verified on MseeP

Installation

bash
# Using uvx
uvx skydeckai-code

Claude Desktop Setup

Add to your claude_desktop_config.json:

json
{
    "mcpServers": {
        "skydeckai-code": {
            "command": "uvx",
            "args": ["skydeckai-code"]
        }
    }
}

SkyDeck AI Helper App

If you're using MseeP AI Helper app, you can search for "SkyDeckAI Code" and install it.

MseeP AI Helper App

Key Features

  • File system operations (read, write, edit, move, copy, delete)
  • Directory management and traversal
  • Multi-language code analysis using tree-sitter
  • Code content searching with regex pattern matching
  • Multi-language code execution with safety measures
  • Web content fetching from APIs and websites with HTML-to-markdown conversion
  • Multi-engine web search with reliable fallback mechanisms
  • Batch operations for parallel and serial tool execution
  • Security controls with configurable workspace boundaries
  • Screenshot and screen context tools
  • Image handling tools

Available Tools (29)

CategoryTool NameDescription
File Systemget_allowed_directoryGet the current working directory path
update_allowed_directoryChange the working directory
create_directoryCreate a new directory or nested directories
write_fileCreate or overwrite a file with new content
edit_fileMake line-based edits to a text file
read_fileRead the contents of one or more files
list_directoryGet listing of files and directories
move_fileMove or rename a file or directory
copy_fileCopy a file or directory to a new location
search_filesSearch for files matching a name pattern
delete_fileDelete a file or empty directory
get_file_infoGet detailed file metadata
directory_treeGet a recursive tree view of directories
read_image_fileRead an image file as base64 data
Code Toolscodebase_mapperAnalyze code structure across files
search_codeFind text patterns in code files
execute_codeRun code in various languages
execute_shell_scriptRun shell/bash scripts
Web Toolsweb_fetchGet content from a URL
web_searchPerform a web search
Screen Toolscapture_screenshotTake a screenshot of screen or window
get_active_appsList running applications
get_available_windowsList all open windows
Systemget_system_infoGet detailed system information
Utilitybatch_toolsRun multiple tool operations together
thinkDocument reasoning without making changes
Todotodo_readRead current workspace todo list
todo_writeReplace entire todo list with validation
todo_updateUpdate specific todo item by ID

Detailed Tool Documentation

Basic File Operations

ToolParametersReturns
read_filefiles: [{path: string, offset?: integer, limit?: integer}]File content (single or multiple files)
write_filepath: string, content: stringSuccess confirmation
move_filesource: string, destination: stringSuccess confirmation
copy_filesource: string, destination: string, recursive?: booleanSuccess confirmation
delete_filepath: stringSuccess confirmation
get_file_infopath: stringFile metadata (size, timestamps, permissions)

Complex File Operations

edit_file

Pattern-based file editing with preview support:

json
{
    "path": "src/main.py",
    "edits": [
        {
            "oldText": "def old_function():",
            "newText": "def new_function():"
        }
    ],
    "dryRun": false,
    "options": {
        "partialMatch": true
    }
}

Returns: Diff of changes or preview in dry run mode.

Directory Operations

ToolParametersReturns
get_allowed_directorynoneCurrent allowed directory path
update_allowed_directorydirectory: string (absolute path)Success confirmation
list_directorypath: stringDirectory contents list
create_directorypath: stringSuccess confirmation
search_filespattern: string, path?: string, include_hidden?: booleanMatching files list

The search_files tool searches for files by name pattern, while the search_code tool searches within file contents using regex. Use search_files when looking for files with specific names or extensions, and search_code when searching for specific text patterns inside files.

directory_tree

Generates complete directory structure:

json
{
    "path": "src",
    "include_hidden": false
}

Returns: JSON tree structure of directory contents.

Code Analysis

codebase_mapper

Analyzes source code structure:

json
{
    "path": "src"
}

Returns:

  • Classes and their methods
  • Functions and parameters
  • Module structure
  • Code organization statistics
  • Inheritance relationships

Supported Languages:

  • Python (.py)
  • JavaScript (.js/.jsx, .mjs, .cjs)
  • TypeScript (.ts/.tsx)
  • Java (.java)
  • C++ (.cpp, .hpp, .cc)
  • Ruby (.rb, .rake)
  • Go (.go)
  • Rust (.rs)
  • PHP (.php)
  • C# (.cs)
  • Kotlin (.kt, .kts)

search_code

Fast content search tool using regular expressions:

json
{
    "patterns": ["function\\s+\\w+", "class\\s+\\w+"],
    "include": "*.js",
    "exclude": "node_modules/**",
    "max_results": 50,
    "case_sensitive": false,
    "path": "src"
}

Parameters:

ParameterTypeRequiredDescription
patternsarray of stringsYesList of regular expression patterns to search for in file contents
includestringNoFile pattern to include (glob syntax, default: "*")
excludestringNoFile pattern to exclude (glob syntax, default: "")
max_resultsintegerNoMaximum results to return per pattern (default: 100)
case_sensitivebooleanNoWhether search is case-sensitive (default: false)
pathstringNoBase directory to search from (default: ".")

Returns: Matching lines grouped by file with line numbers, sorted by file modification time with newest files first.

This tool uses ripgrep when available for optimal performance, with a Python fallback implementation. It's ideal for finding specific code patterns like function declarations, imports, variable usages, or error handling.

System Information

ToolParametersReturns
get_system_infononeComprehensive system details

Returns:

json
{
  "working_directory": "/path/to/project",
  "system": {
    "os", "os_version", "architecture", "python_version"
  },
  "wifi_network": "MyWiFi",
  "cpu": {
    "physical_cores", "logical_cores", "total_cpu_usage"
  },
  "memory": { "total", "available", "used_percentage" },
  "disk": { "total", "free", "used_percentage" },
  "mac_details": {  // Only present on macOS
    "model": "Mac mini",
    "chip": "Apple M2",
    "serial_number": "XXX"
  }
}

Provides essential system information in a clean, readable format.

Screen Context and Image Tools

get_active_apps

Returns a list of currently active applications on the user's system.

json
{
    "with_details": true
}

Parameters:

ParameterTypeRequiredDescription
with_detailsbooleanNoWhether to include additional details about each application (default: false)

Returns:

json
{
    "success": true,
    "platform": "macos",
    "app_count": 12,
    "apps": [
        {
            "name": "Firefox",
            "has_windows": true,
            "window_count": 3,
            "visible_windows": [
                { "name": "GitHub - Mozilla Firefox", "width": 1200, "height": 800 }
            ]
        },
        {
            "name": "VSCode",
            "has_windows": true
        }
    ]
}

This tool provides valuable context about applications currently running on the user's system, which can help with providing more relevant assistance.

get_available_windows

Returns detailed information about all available windows currently displayed on the user's screen.

json
{}

Returns:

json
{
    "success": true,
    "platform": "macos",
    "count": 8,
    "windows": [
        {
            "id": 42,
            "title": "Document.txt - Notepad",
            "app": "Notepad",
            "visible": true
        },
        {
            "title": "Terminal",
            "app": "Terminal",
            "visible": true,
            "active": true
        }
    ]
}

This tool helps understand what's visible on the user's screen and can be used for context-aware assistance.

capture_screenshot

Captures a screenshot of the user's screen or a specific window.

json
{
    "output_path": "screenshots/capture.png",
    "capture_mode": {
        "type": "named_window",
        "window_name": "Visual Studio Code"
    }
}

Parameters:

ParameterTypeRequiredDescription
output_pathstringNoPath where the screenshot should be saved (default: generated path)
capture_modeobjectNoSpecifies what to capture
capture_mode.typestringNoType of screenshot: 'full', 'active_window', or 'named_window' (default: 'full')
capture_mode.window_namestringNoName of window to capture (required when type is 'named_window')

Returns:

json
{
    "success": true,
    "path": "/path/to/screenshots/capture.png"
}

This tool captures screenshots for visualization, debugging, or context-aware assistance.

read_image_file

Reads an image file from the file system and returns its contents as a base64-encoded string.

json
{
    "path": "images/logo.png"
}

Parameters:

ParameterTypeRequiredDescription
pathstringYesPath to the image file to read
max_sizeintegerNoMaximum file size in bytes (default: 100MB)

Returns: Base64-encoded image data that can be displayed or processed.

This tool supports common image formats like PNG, JPEG, GIF, and WebP, and automatically resizes images for optimal viewing.

Web Tools

web_fetch

Fetches content from a URL and optionally saves it to a file.

json
{
    "url": "https://api.github.com/users/octocat",
    "headers": {
        "Accept": "application/json"
    },
    "timeout": 15,
    "save_to_file": "downloads/octocat.json",
    "convert_html_to_markdown": true
}

Parameters:

ParameterTypeRequiredDescription
urlstringYesURL to fetch content from (http/https only)
headersobjectNoOptional HTTP headers to include in the request
timeoutintegerNoMaximum time to wait for response (default: 10s)
save_to_filestringNoPath to save response content (within allowed directory)
convert_html_to_markdownbooleanNoWhen true, converts HTML content to markdown for better readability (default: true)

Returns: Response content as text with HTTP status code and size information. For binary content, returns metadata and saves to file if requested. When convert_html_to_markdown is enabled, HTML content is automatically converted to markdown format for better readability.

This tool can be used to access web APIs, fetch documentation, or download content from the web while respecting size limits (10MB max) and security constraints.

web_search

Performs a robust web search using multiple search engines and returns concise, relevant results.

json
{
    "query": "latest python release features",
    "num_results": 8,
    "convert_html_to_markdown": true,
    "search_engine": "bing"
}

Parameters:

ParameterTypeRequiredDescription
querystringYesThe search query to process. Be specific for better results.
num_resultsintegerNoMaximum number of search results to return (default: 10, max: 20)
convert_html_to_markdownbooleanNoWhen true, content will be converted from HTML to markdown for better readability (default: true)
search_enginestringNoSpecifies which search engine to use: "auto" (default), "bing", or "duckduckgo"

Returns: A list of search results formatted in markdown, including titles, URLs, and snippets for each result. Results are deduplicated and organized hierarchically for easy reading.

This tool uses a multi-engine approach that tries different search engines with various parsing strategies to ensure reliable results. You can specify a preferred engine, but some engines may block automated access, in which case the tool will fall back to alternative engines when "auto" is selected.

Utility Tools

batch_tools

Execute multiple tool invocations in a single request with parallel execution when possible.

json
{
    "description": "Setup new project",
    "sequential": true,
    "invocations": [
        {
            "tool": "create_directory",
            "arguments": {
                "path": "src"
            }
        },
        {
            "tool": "write_file",
            "arguments": {
                "path": "README.md",
                "content": "# New Project\n\nThis is a new project."
            }
        },
        {
            "tool": "execute_shell_script",
            "arguments": {
                "script": "git init"
            }
        }
    ]
}

Parameters:

ParameterTypeRequiredDescription
descriptionstringYesShort description of the batch operation
sequentialbooleanNoWhether to run tools in sequence (default: false)
invocationsarrayYesList of tool invocations to execute
invocations[].toolstringYesName of the tool to invoke
invocations[].argumentsobjectYesArguments for the specified tool

Returns: Combined results from all tool invocations, grouped by tool with success/error status for each. Results are presented in the original invocation order with clear section headers.

This tool provides efficient execution of multiple operations in a single request. When sequential is false (default), tools are executed in parallel for better performance. When sequential is true, tools are executed in order, and if any tool fails, execution stops.

IMPORTANT: All tools in the batch execute in the same working directory context. If a tool creates a directory and a subsequent tool needs to work inside that directory, you must either:

  1. Use paths relative to the current working directory (e.g., "project/src" rather than just "src"), or
  2. Include an explicit tool invocation to change directories using update_allowed_directory

think

A tool for complex reasoning and brainstorming without making changes to the repository.

json
{
    "thought": "Let me analyze the performance issue in the codebase:\n\n## Root Cause Analysis\n\n1. The database query is inefficient because:\n   - It doesn't use proper indexing\n   - It fetches more columns than needed\n   - The JOIN operation is unnecessarily complex\n\n## Potential Solutions\n\n1. **Add database indexes**:\n   - Create an index on the user_id column\n   - Create a composite index on (created_at, status)\n\n2. **Optimize the query**:\n   - Select only necessary columns\n   - Rewrite the JOIN using a subquery\n   - Add LIMIT clause for pagination\n\n3. **Add caching layer**:\n   - Cache frequent queries using Redis\n   - Implement cache invalidation strategy\n\nAfter weighing the options, solution #2 seems to be the simplest to implement with the highest impact."
}

Parameters:

ParameterTypeRequiredDescription
thoughtstringYesYour detailed thoughts, analysis or reasoning process

Returns: Your thoughts formatted as markdown, with a note indicating this was a thinking exercise.

This tool is useful for thinking through complex problems, brainstorming solutions, or laying out implementation plans without making any actual changes. It's a great way to document your reasoning process, evaluate different approaches, or plan out a multi-step strategy before taking action.

Code Execution

execute_code

Executes code in various programming languages with safety measures and restrictions.

json
{
    "language": "python",
    "code": "print('Hello, World!')",
    "timeout": 5
}

Supported Languages:

  • Python (python3)
  • JavaScript (Node.js)
  • Ruby
  • PHP
  • Go
  • Rust

Parameters:

ParameterTypeRequiredDescription
languagestringYesProgramming language to use
codestringYesCode to execute
timeoutintegerNoMaximum execution time (default: 5s)

Requirements:

  • Respective language runtimes must be installed
  • Commands must be available in system PATH
  • Proper permissions for temporary file creation

⚠️ Security Warning: This tool executes arbitrary code on your system. Always:

  1. Review code thoroughly before execution
  2. Understand the code's purpose and expected outcome
  3. Never execute untrusted code
  4. Be aware of potential system impacts
  5. Monitor execution output

execute_shell_script

Executes shell scripts (bash/sh) with safety measures and restrictions.

json
{
    "script": "echo \"Current directory:\" && pwd",
    "timeout": 300
}

Parameters:

ParameterTypeRequiredDescription
scriptstringYesShell script to execute
timeoutintegerNoMaximum execution time (default: 300s, max: 600s)

Features:

  • Uses /bin/sh for maximum compatibility across systems
  • Executes within the allowed directory
  • Separate stdout and stderr output
  • Proper error handling and timeout controls

⚠️ Security Warning: This tool executes arbitrary shell commands on your system. Always:

  1. Review the script thoroughly before execution
  2. Understand the script's purpose and expected outcome
  3. Never execute untrusted scripts
  4. Be aware of potential system impacts
  5. Monitor execution output

Todo Tools

The todo tools provide sequential task management capabilities for workspace-first development workflows. Tasks are executed in order without priority systems, ensuring structured progress through development phases.

todo_read

Read the current todo list for the workspace.

json
{}

Returns:

json
{
  "todos": [
    {
      "id": "abc123",
      "content": "Implement user authentication",
      "status": "in_progress",
      "metadata": {
        "custom_key": "custom_value"
      },
      "created_at": "2023-10-01T10:00:00Z",
      "updated_at": "2023-10-01T11:30:00Z"
    }
  ],
  "count": 1,
  "workspace": "/path/to/workspace"
}

todo_write

Replace the entire todo list for sequential execution workflow. Tasks are executed in array order, building upon previous work.

json
{
  "todos": [
    {
      "id": "task1",
      "content": "Set up database schema",
      "status": "pending"
    },
    {
      "id": "task2", 
      "content": "Create API endpoints",
      "status": "pending",
      "metadata": {
        "custom_key": "custom_value"
      }
    }
  ]
}

Sequential Workflow Rules:

  • Each todo must have unique ID
  • Only one task can be "in_progress" at a time (sequential execution)
  • Tasks execute in array order - no priority system
  • Required fields: id, content, status
  • Status values: "pending", "in_progress", "completed"
  • Workspace-first: Todo management is mandatory for all workspace operations

todo_update

Update a specific todo item by ID for sequential workflow progression.

json
{
  "todo_id": "task1",
  "updates": {
    "status": "in_progress",
    "metadata": {
        "new_key": "new_value"
    }
  }
}

Returns:

json
{
  "success": true,
  "updated_todo": {
    "id": "task1",
    "content": "Set up database schema",
    "status": "in_progress",
    "updated_at": "2023-10-01T12:00:00Z",
    "metadata": {
        "new_key": "new_value"
    }
  },
  "counts": {
    "pending": 1,
    "in_progress": 1,
    "completed": 0,
    "total": 2
  },
  "workspace": "/path/to/workspace"
}

The todo system maintains separate sequential task lists for each workspace, enforcing mandatory usage for all workspace operations. Tasks execute in order, building upon previous work without priority-based scheduling.

Configuration

Configuration file: ~/.skydeckai_code/config.json

json
{
    "allowed_directory": "/path/to/workspace"
}

Debugging

Use MCP Inspector for debugging:

bash
npx @modelcontextprotocol/inspector run

Security

  • Operations restricted to configured allowed directory
  • Path traversal prevention
  • File permission preservation
  • Safe operation handling

Upcoming Features

  • GitHub tools:
    • PR Description Generator
    • Code Review
    • Actions Manager
  • Pivotal Tracker tools:
    • Story Generator
    • Story Manager

Development Status

Currently in active development. Features and API may change.

License

Apache License 2.0 - see LICENSE

Star History Chart

Installation

TypingMind
Prerequisites:

Node.js 18+

{
  "mcpServers": {
    "skydeckai-code": {
      "command": "uvx",
      "args": [
        "skydeckai-code"
      ]
    }
  }
}

Available Tools

  • get_allowed_directory

    Get the current working directory that this server is allowed to access. WHEN TO USE: When you need to understand the current workspace boundaries, determine the root directory for relative paths, or verify where file operations are permitted. Useful for commands that need to know the allowed workspace root. WHEN NOT TO USE: When you already know the current working directory or when you need to actually list files in the directory (use directory_listing instead). RETURNS: A string containing the absolute path to the current allowed working directory. This is the root directory within which all file operations must occur.

  • write_file

    Create a new file or overwrite an existing file with new content. WHEN TO USE: When you need to save changes, create new files, or update existing ones with new content. Useful for generating reports, creating configuration files, or saving edited content. WHEN NOT TO USE: When you want to make targeted edits to parts of a file while preserving the rest (use edit_file instead), when you need to append to a file without overwriting existing content, or when you need to preserve the original file. RETURNS: A confirmation message indicating that the file was successfully written. Creates parent directories automatically if they don't exist. Use with caution as it will overwrite existing files without warning. Only works within the allowed directory. Example: Path='notes.txt', Content='Meeting notes for project X'

  • update_allowed_directory

    Change the working directory that this server is allowed to access. WHEN TO USE: When you need to switch between different projects, change the workspace root to a different directory, or expand/modify the boundaries of allowed file operations. Useful when working with multiple projects or repositories in different locations. WHEN NOT TO USE: When you only need to create a subdirectory within the current workspace (use create_directory instead), or when you just want to list files in a different directory (use directory_listing instead). RETURNS: A confirmation message indicating that the allowed directory has been successfully updated to the new path.

  • create_directory

    Create a new directory or ensure a directory exists. Can create multiple nested directories in one operation. WHEN TO USE: When you need to set up project structure, organize files, create output directories before saving files, or establish a directory hierarchy. WHEN NOT TO USE: When you only want to check if a directory exists (use get_file_info instead), or when trying to create directories outside the allowed workspace. RETURNS: Text message confirming either that the directory was successfully created or that it already exists. The operation succeeds silently if the directory already exists. Only works within the allowed directory. Example: Enter 'src/components' to create nested directories.

  • edit_file

    $2e

  • list_directory

    Get a detailed listing of files and directories in the specified path, including type, size, and modification date. WHEN TO USE: When you need to explore the contents of a directory, understand what files are available, check file sizes or modification dates, or locate specific files by name. WHEN NOT TO USE: When you need to read the contents of files (use read_file instead), when you need a recursive listing of all subdirectories (use directory_tree instead), or when searching for files by name pattern (use search_files instead). RETURNS: Text with each line containing file type ([DIR]/[FILE]), name, size (in B/KB/MB), and modification date. Only works within the allowed directory. Example: Enter 'src' to list contents of the src directory, or '.' for current directory.

  • read_file

    $2f

  • move_file

    Move or rename a file or directory to a new location. WHEN TO USE: When you need to reorganize files or directories, rename files or folders, or move items to a different location within the allowed workspace. Useful for organizing project files, restructuring directories, or for simple renaming operations. WHEN NOT TO USE: When you want to copy a file while keeping the original (copying functionality is not available in this tool set), when destination already exists (the operation will fail), or when either source or destination is outside the allowed workspace. RETURNS: A confirmation message indicating that the file or directory was successfully moved. Parent directories of the destination will be created automatically if they don't exist. Both source and destination must be within the allowed directory. Example: source='old.txt', destination='new/path/new.txt'

  • copy_file

    Copy a file or directory to a new location. WHEN TO USE: When you need to duplicate files or directories while keeping the original intact, create backups, or replicate configuration files for different environments. Useful for testing changes without risking original files, creating template files, or duplicating project structures. WHEN NOT TO USE: When you want to move a file without keeping the original (use move_file instead), when the destination already exists (the operation will fail), or when either source or destination is outside the allowed workspace. RETURNS: A confirmation message indicating that the file or directory was successfully copied. For directories, the entire directory structure is copied recursively. Parent directories of the destination will be created automatically if they don't exist. Both source and destination must be within the allowed directory. Example: source='config.json', destination='config.backup.json'

  • search_files

    Search for files and directories matching a pattern in their names. WHEN TO USE: When you need to find files or directories by name pattern across a directory tree, locate files with specific extensions, or find items containing certain text in their names. Useful for locating configuration files, finding all files of a certain type, or gathering files related to a specific feature. WHEN NOT TO USE: When searching for content within files (use search_code tool for that), when you need a flat listing of a single directory (use list_directory instead), or when you need to analyze code structure (use codebase_mapper instead). RETURNS: A list of matching files and directories with their types ([FILE] or [DIR]) and relative paths. For Git repositories, only shows tracked files and directories by default. The search is recursive and case-insensitive. Only searches within the allowed directory. Example: pattern='.py' finds all Python files, pattern='test' finds all items with 'test' in the name.

  • delete_file

    Delete a file or empty directory from the file system. WHEN TO USE: When you need to remove unwanted files, clean up temporary files, or delete empty directories. Useful for cleaning up workspaces, removing intermediate build artifacts, or deleting temporary files. WHEN NOT TO USE: When you need to delete non-empty directories (the operation will fail), when you want to move files instead of deleting them (use move_file instead), or when you need to preserve the file for later use. RETURNS: A confirmation message indicating that the file or empty directory was successfully deleted. For safety, this tool will not delete non-empty directories. Use with caution as this operation cannot be undone. Only works within the allowed directory. Example: path='old_file.txt' removes the specified file.

  • get_file_info

    Get detailed information about a file or directory. WHEN TO USE: When you need to check file metadata like size, timestamps, permissions, or file type without reading the contents. Useful for determining when files were modified, checking file sizes, verifying file existence, or distinguishing between files and directories. WHEN NOT TO USE: When you need to read the actual content of a file (use read_file instead), or when you need to list all files in a directory (use directory_listing instead). RETURNS: Text with information about the file or directory including type (file/directory), size in bytes, creation time, modification time, access time (all in ISO 8601 format), and permissions. Only works within the allowed directory. Example: path='src/main.py' returns details about main.py

  • directory_tree

    $30

  • execute_code

    $31

  • execute_shell_script

    $32

  • codebase_mapper

    $33

  • search_code

    Fast content search tool using regular expressions. WHEN TO USE: When you need to search for specific patterns within file contents across a codebase. Useful for finding function definitions, variable usages, import statements, or any text pattern in source code files. WHEN NOT TO USE: When you need to find files by name (use search_files instead), when you need semantic code understanding (use codebase_mapper instead), or when analyzing individual file structure. RETURNS: Lines of code matching the specified patterns, grouped by file with line numbers. Results are sorted by file modification time with newest files first. Respects file filtering and ignores binary files. Search is restricted to the allowed directory.

  • batch_tools

    $34

  • think

    Use the tool to methodically think through a complex problem step-by-step. WHEN TO USE: When tackling complex reasoning tasks that benefit from breaking down problems, exploring multiple perspectives, or reasoning through chains of consequences. Ideal for planning system architecture, debugging complex issues, anticipating edge cases, weighing tradeoffs, or making implementation decisions. WHEN NOT TO USE: For simple explanations, direct code writing, retrieving information, or when immediate action is needed. RETURNS: Your structured thinking process formatted as markdown. This tool helps you methodically document your reasoning without making repository changes. Structuring your thoughts with this tool can lead to more reliable reasoning and better decision-making, especially for complex problems where it's easy to overlook important considerations.

  • capture_screenshot

    $35

  • get_active_apps

    Get a list of currently active applications running on the user's system. WHEN TO USE: When you need to understand what software the user is currently working with, gain context about their active applications, provide application-specific assistance, or troubleshoot issues related to running programs. Especially useful for providing targeted help based on what the user is actively using. WHEN NOT TO USE: When you need information about specific windows rather than applications (use get_available_windows instead), when you need a screenshot of what's on screen (use capture_screenshot instead), or when application context isn't relevant to the task at hand. RETURNS: JSON object containing platform information, success status, count of applications, and an array of application objects. Each application object includes name, has_windows flag, and when details are requested, information about visible windows. Works on macOS, Windows, and Linux, with platform-specific implementation details.

  • get_available_windows

    Get detailed information about all available windows currently displayed on the user's screen. WHEN TO USE: When you need to know exactly what windows are visible to the user, find a specific window by title, provide guidance related to something the user is viewing, or need window-level context that's more detailed than application-level information. Useful for referencing specific content the user can see on their screen. WHEN NOT TO USE: When application-level information is sufficient (use get_active_apps instead), when you need to capture what's on screen (use capture_screenshot instead), or when window context isn't relevant to the task at hand. RETURNS: JSON object containing platform information, success status, count of windows, and an array of window objects. Each window object includes title, application owner, visibility status, and platform-specific details like window IDs. Works on macOS, Windows, and Linux, with platform-specific implementation details.

  • read_image_file

    Read an image file from the file system and return its contents as a base64-encoded string. WHEN TO USE: When you need to view or process image files, include images in responses, analyze image content, or convert images to a format that can be transmitted as text. Useful for examining screenshots, diagrams, photos, or any visual content stored in the file system. WHEN NOT TO USE: When you only need information about the image file without its contents (use get_file_info instead), when working with extremely large images (over 100MB), or when you need to read text files (use read_file instead). RETURNS: A base64-encoded data URI string prefixed with the appropriate MIME type (e.g., 'data:image/png;base64,...'). Images that are very small or very large will be automatically resized to between 20-800 pixels wide while maintaining aspect ratio. This tool supports common image formats like PNG, JPEG, GIF, and WebP. Only works within the allowed directory.

  • web_fetch

    Fetches content from a URL. WHEN TO USE: When you need to retrieve data from web APIs, download documentation, check external resources, or gather information from websites. Useful for getting real-time data, documentation, or referencing external content. WHEN NOT TO USE: When you need to interact with complex websites requiring authentication or session management, when the data needs to be processed in a specific format not supported, or when you need to make authenticated API calls with OAuth. TIP: Use 'web_search' first to find relevant URLs, then use this tool to fetch detailed content. RETURNS: The content of the URL as text. For HTML pages, returns the raw HTML content. For JSON endpoints, returns the JSON content as a string. Successful response includes HTTP status code. Failed requests include error details. Maximum request size enforced for safety.

  • web_search

    Performs a web search and returns the search results. WHEN TO USE: When you need to find information on the web, get up-to-date data, or research a topic. This provides more current information than your training data. WHEN NOT TO USE: For queries requiring complex authentication, accessing private data, or when you want to browse interactive websites. TIP: For best results, use this tool to find relevant URLs, then use 'web_fetch' to get the full content of specific pages. RETURNS: A list of search results including titles, URLs, and snippets for each result.

  • get_system_info

    $36

  • todo_read

    $37

  • todo_write

    $38

  • todo_update

    $39

Use AiDD (Dev Workflows) MCP with multiple AI models

TypingMind connects MCP tools at the workspace level, so once AiDD (Dev Workflows) is connected, you can use it with different AI models in TypingMind instead of setting it up separately for each model. This MCP runs locally through the TypingMind MCP connector on your device.

Setup guide to use the local connector

Use this when the MCP server needs access to local files, apps, or private resources on your computer.

1

Open the MCP settings

In TypingMind, go to Settings, Advanced Settings, then Model Context Protocol and choose Setup Connector.

  1. Open TypingMind in your browser.
  2. Click the Settings icon.
  3. Go to Advanced Settings.
  4. Open the Model Context Protocol section.
  5. Click Setup Connector and choose This Device.
TypingMind MCP connector setup screen with This Device selected
2

Run the connector command

Choose This Device, copy the command from TypingMind, and run it in Terminal. Keep the process running while you use MCP.

  1. Copy the setup command shown by TypingMind.
  2. Open Terminal on macOS or Windows Terminal on Windows.
  3. Paste and run the command.
  4. Approve the package install if Terminal asks you to proceed.
  5. Keep the Terminal window running while using MCP tools.
3

Add AiDD (Dev Workflows) as a server

When the connector status is Ready, click Edit Servers and paste the MCP server configuration.

  1. Wait until the connector status shows Ready.
  2. Click Edit Servers.
  3. Paste the AiDD (Dev Workflows) MCP server configuration.
  4. Save the server list.
  5. Refresh if you want to confirm the connector is still ready.
TypingMind MCP settings showing active server and Edit Servers button
{
  "mcpServers": {
    "aidd-dev-workflows": {
      "command": "npx",
      "args": [
        "-y",
        "mcp-server-aidd"
      ]
    }
  }
}
4

Use it across models

Save the server list, open Plugins, enable the AiDD (Dev Workflows) MCP tools, then select any supported AI model in TypingMind and use the tools in chat or assign them to an AI agent.

  1. Open the Plugins page in TypingMind.
  2. Enable the AiDD (Dev Workflows) MCP tools.
  3. Start a chat and choose the AI model you want to use.
  4. Use the MCP tools in chat or assign them to an AI agent.
  5. Switch to another AI model whenever needed without reconnecting MCP.
TypingMind chat using enabled MCP tools with a selected AI model
Can you use AiDD (Dev Workflows) to help me with this task?
AiDD (Dev Workflows)
Sure. I read it.
Here is what I found using AiDD (Dev Workflows).

Frequently asked questions

What is the AiDD (Dev Workflows) MCP server used for?

AiDD (Dev Workflows) is an MCP server that lets compatible AI clients connect to external tools and context. In TypingMind, you can add this MCP server once and make its tools available in your AI workspace.

Can I use AiDD (Dev Workflows) MCP with multiple AI models in TypingMind?

Yes. TypingMind connects MCP tools at the workspace level, so you can use AiDD (Dev Workflows) with different AI models such as Claude, ChatGPT, Gemini, or other models you have configured in TypingMind without setting up the MCP server separately for each model.

Why use AiDD (Dev Workflows) MCP with TypingMind?

TypingMind is one of the best frontends for LLM chat because it brings multiple AI models, prompts, plugins, AI agents, API keys, and MCP tools into one workspace. With AiDD (Dev Workflows) connected, you can use its MCP tools across your preferred models while keeping your chat workflow organized in TypingMind.

How do I connect AiDD (Dev Workflows) MCP to TypingMind?

AiDD (Dev Workflows) runs through the TypingMind local MCP connector. This is best when the MCP server needs access to local files, desktop apps, command-line tools, or private resources on your computer.

What tools does AiDD (Dev Workflows) MCP provide in TypingMind?

AiDD (Dev Workflows) exposes 29 MCP tools that can be enabled from the TypingMind Plugins page and used in chat or assigned to AI agents.

Do I need to share my API keys with TypingMind to use AiDD (Dev Workflows) MCP?

No. TypingMind is local-first and lets you keep your model providers, API keys, prompts, and MCP configuration under your control. If AiDD (Dev Workflows) requires authentication, add the required headers, OAuth settings, or local configuration for that MCP server when you create the connection.

Related MCP Servers

View all

Set up your own AI workspace now

Get notified about new features and future giveaways by subscribing to our newsletter 👇