{"passport":{"unfragile":{"@version":"1.0","version":"2026-05","artifact":{"id":"github_mcp-dadbodgeoff-drift","slug":"mcp-dadbodgeoff-drift","name":"drift","type":"mcp","url":"https://github.com/dadbodgeoff/drift","page_url":"https://unfragile.ai/mcp-dadbodgeoff-drift","categories":["mcp-servers","code-editors"],"tags":["ai-tools","cli","code-quality","csharp","java","mcp","mcp-server","model-context-protocol","pattern-detection","php","python","typescript","vscode-extension"],"pricing":{"model":"open_source","free":true,"starting_price":null},"status":"active","verified":false},"capabilities":[{"id":"github_mcp-dadbodgeoff-drift__cap_0","uri":"capability://data.processing.analysis.multi.language.codebase.pattern.detection.with.statistical.confidence.scoring","name":"multi-language codebase pattern detection with statistical confidence scoring","description":"Analyzes codebases across 8+ languages (TypeScript, Python, C#, Java, PHP, Go, Rust, C++) using a Rust-based core engine that performs AST parsing and structural analysis to identify recurring patterns, naming conventions, architectural styles, and anti-patterns. Returns pattern matches with statistical confidence scores derived from frequency analysis across the codebase, enabling AI assistants to understand project-specific conventions with quantified certainty rather than guessing.","intents":["I want AI code generators to understand my project's naming conventions and architectural patterns before writing new code","I need to detect if my codebase has drifted from established patterns and conventions","I want to identify recurring architectural decisions and anti-patterns across my entire codebase"],"best_for":["teams using Claude, Cursor, or Copilot who want context-aware code generation","developers maintaining large codebases with established conventions","organizations enforcing architectural consistency across multiple projects"],"limitations":["Pattern detection confidence depends on codebase size — small projects (<1000 LOC) may have insufficient samples for statistical significance","Rust core engine requires compilation from source on unsupported platforms, adding setup complexity","No real-time analysis during active coding — requires explicit scan invocation via CLI or MCP"],"requires":["Node.js 18.0.0 or higher","npm or pnpm package manager","Supported language files (.ts, .tsx, .js, .jsx, .py, .cs, .java, .php, .go, .rs, .cpp, .hpp, .cc, .h)"],"input_types":["source code files in supported languages","directory paths containing codebases","configuration files for scan parameters"],"output_types":["structured pattern data with confidence scores","JSON-formatted analysis results","pattern metadata including frequency and locations"],"categories":["data-processing-analysis","code-quality"],"confidence":0.5,"matches":0,"success_rate":0},{"id":"github_mcp-dadbodgeoff-drift__cap_1","uri":"capability://memory.knowledge.persistent.architectural.decision.memory.with.session.continuity","name":"persistent architectural decision memory with session continuity","description":"Maintains a file-system-backed decision store (stored in .drift/ directory) that records architectural decisions, design choices, and conventions made across coding sessions. The memory system allows developers and AI assistants to query previous decisions via MCP, enabling context to persist across IDE restarts and multiple AI interactions without requiring manual re-explanation of project decisions.","intents":["I want to record architectural decisions once and have AI assistants remember them across multiple coding sessions","I need to query what design patterns or conventions were decided for specific parts of my codebase","I want to prevent AI from repeatedly suggesting approaches that were already rejected or decided against"],"best_for":["teams using AI coding assistants who want persistent context across sessions","projects with evolving architectural decisions that need to be tracked over time","developers working in IDEs that support MCP (VS Code, Cursor, etc.)"],"limitations":["Memory is stored locally in .drift/ directory — no built-in cloud sync or team collaboration features","No conflict resolution for concurrent decision updates if multiple developers modify memory simultaneously","Decision queries return raw stored data without semantic understanding — requires AI assistant to interpret relevance"],"requires":["Node.js 18.0.0 or higher","Write access to project directory for .drift/ folder creation","MCP-compatible IDE or CLI invocation for memory queries"],"input_types":["decision descriptions (text)","architectural context (code snippets, file paths)","decision metadata (date, author, rationale)"],"output_types":["JSON-formatted decision records","queryable decision history","MCP tool responses with decision context"],"categories":["memory-knowledge","tool-use-integration"],"confidence":0.5,"matches":0,"success_rate":0},{"id":"github_mcp-dadbodgeoff-drift__cap_2","uri":"capability://tool.use.integration.mcp.server.integration.for.ide.native.codebase.intelligence","name":"mcp server integration for ide-native codebase intelligence","description":"Exposes Drift's pattern detection and decision memory capabilities as an MCP (Model Context Protocol) server that integrates directly into IDEs like VS Code and Cursor. The MCP server implements standard tool-calling interfaces allowing AI assistants running in the IDE to query codebase patterns and decisions without leaving the editor, with results automatically injected into the AI's context window for code generation.","intents":["I want Claude or Copilot in my IDE to automatically query my codebase patterns before generating code","I need my AI assistant to have access to project conventions without manual copy-paste of context","I want to integrate codebase intelligence into my existing IDE workflow without switching tools"],"best_for":["VS Code and Cursor users who want seamless AI integration","teams using Claude for coding who want project context automatically available","developers who want MCP-based tool calling without custom server implementation"],"limitations":["MCP server requires IDE support for MCP protocol — not all editors support it yet","Tool calling latency adds ~200-500ms per query depending on codebase size and network conditions","No built-in caching of pattern results — each MCP query re-analyzes unless explicitly cached by IDE"],"requires":["Node.js 18.0.0 or higher","MCP-compatible IDE (VS Code 1.80+, Cursor, or other MCP clients)","Drift initialized in project directory (drift init)"],"input_types":["MCP tool calls from IDE","query parameters (file paths, pattern types, decision filters)","codebase context from IDE"],"output_types":["MCP tool responses (JSON)","pattern data with confidence scores","decision records formatted for AI context injection"],"categories":["tool-use-integration","memory-knowledge"],"confidence":0.5,"matches":0,"success_rate":0},{"id":"github_mcp-dadbodgeoff-drift__cap_3","uri":"capability://automation.workflow.offline.cli.based.codebase.scanning.and.analysis","name":"offline cli-based codebase scanning and analysis","description":"Provides a command-line interface (drift init, drift scan, drift import, drift memory) that performs batch analysis of codebases without requiring IDE integration or cloud connectivity. The CLI invokes the Rust core engine to parse and analyze code, stores results in the local .drift/ directory, and outputs human-readable reports or JSON data for integration into CI/CD pipelines and automation workflows.","intents":["I want to analyze my codebase in CI/CD pipelines to detect pattern violations before code review","I need to generate pattern reports for documentation or team onboarding","I want to run Drift offline without IDE dependencies or network access"],"best_for":["CI/CD pipeline integration for automated pattern compliance checking","teams generating codebase documentation and architectural reports","developers working in environments without IDE support (servers, containers)"],"limitations":["CLI output requires manual parsing for integration into custom workflows — no built-in webhook or event system","Batch analysis mode doesn't provide real-time feedback during development","No interactive CLI — all analysis is non-interactive batch operations"],"requires":["Node.js 18.0.0 or higher","npm or pnpm for installation","Git (optional, for .gitignore integration)"],"input_types":["directory paths for scanning","configuration files (.driftrc or similar)","command-line arguments for scan parameters"],"output_types":["JSON analysis results","human-readable CLI output","pattern reports","decision memory exports"],"categories":["automation-workflow","data-processing-analysis"],"confidence":0.5,"matches":0,"success_rate":0},{"id":"github_mcp-dadbodgeoff-drift__cap_4","uri":"capability://data.processing.analysis.language.specific.convention.analysis.with.ast.based.structural.awareness","name":"language-specific convention analysis with ast-based structural awareness","description":"Analyzes code structure using Abstract Syntax Trees (ASTs) for each supported language, enabling detection of language-specific conventions like naming patterns (camelCase vs snake_case), architectural styles (MVC, layered, modular), and language idioms. The Rust core engine maintains separate parsers for each language, allowing it to understand semantic structure beyond simple text matching and detect violations of language-specific best practices.","intents":["I want to detect if my Python code follows PEP 8 naming conventions and my TypeScript follows camelCase patterns","I need to identify architectural patterns specific to my language (e.g., dependency injection in Java, middleware in Express)","I want to catch code that compiles but violates established language idioms in my project"],"best_for":["polyglot teams with multiple languages who want language-specific pattern detection","projects enforcing language-specific style guides and conventions","developers who want AST-based analysis without learning language-specific linter configurations"],"limitations":["AST parsing adds startup latency (~500ms-2s depending on codebase size) compared to regex-based tools","Language support is limited to 8 languages — less comprehensive than universal linters for individual languages","Custom language-specific rules require modifying Rust core engine — no user-facing DSL for rule definition"],"requires":["Node.js 18.0.0 or higher","Source code files in supported languages (.ts, .py, .cs, .java, .php, .go, .rs, .cpp, .hpp, .cc, .h)","Rust compilation environment if building from source"],"input_types":["source code files in supported languages","directory paths containing mixed-language codebases","language-specific configuration hints"],"output_types":["AST-based pattern analysis results","language-specific convention violations","structural pattern matches with locations"],"categories":["data-processing-analysis","code-quality"],"confidence":0.5,"matches":0,"success_rate":0},{"id":"github_mcp-dadbodgeoff-drift__cap_5","uri":"capability://data.processing.analysis.codebase.import.and.legacy.decision.migration","name":"codebase import and legacy decision migration","description":"Provides a drift import command that allows developers to import existing architectural decisions, patterns, and conventions from legacy documentation, previous analysis tools, or manual records into Drift's persistent memory system. This enables teams to bootstrap Drift with existing knowledge rather than starting from scratch, and facilitates migration from other codebase intelligence tools.","intents":["I want to import architectural decisions from our existing documentation into Drift's memory","I need to migrate pattern data from another codebase analysis tool to Drift","I want to bootstrap Drift with decisions made in previous projects or sessions"],"best_for":["teams migrating from other codebase intelligence tools","projects with existing architectural documentation that needs to be formalized","organizations onboarding Drift into established codebases with existing conventions"],"limitations":["Import format is not standardized — requires custom mapping for each source tool or documentation format","No built-in conflict resolution if imported decisions conflict with detected patterns","Import is one-time operation — no continuous sync with source documentation"],"requires":["Node.js 18.0.0 or higher","Drift initialized in project directory (drift init)","Source data in supported import format (JSON, CSV, or custom format)"],"input_types":["JSON files with decision records","CSV files with pattern data","custom formatted decision documents"],"output_types":["imported decision records in .drift/ directory","migration report with success/failure counts","validation errors for malformed input"],"categories":["data-processing-analysis","automation-workflow"],"confidence":0.5,"matches":0,"success_rate":0},{"id":"github_mcp-dadbodgeoff-drift__cap_6","uri":"capability://automation.workflow.configuration.driven.analysis.scope.and.filtering","name":"configuration-driven analysis scope and filtering","description":"Supports project-level configuration (via .driftrc or similar config files) that allows developers to customize which files/directories are analyzed, which patterns to detect, which languages to prioritize, and how to weight different pattern types. The configuration system integrates with .gitignore for automatic exclusion of ignored files, reducing noise and focusing analysis on relevant code.","intents":["I want to exclude test files and generated code from pattern analysis","I need to configure Drift to focus on specific architectural patterns relevant to my project","I want to respect .gitignore rules so Drift doesn't analyze ignored files"],"best_for":["teams with large codebases containing generated code, tests, or dependencies","projects with specific architectural concerns that need focused analysis","developers who want to customize Drift's behavior without forking the codebase"],"limitations":["Configuration is project-level only — no team-level or organization-level config sharing","No built-in validation of configuration syntax — malformed configs may fail silently","Configuration changes require re-running analysis — no incremental updates"],"requires":["Node.js 18.0.0 or higher","Drift initialized in project directory (drift init)","Configuration file in project root (.driftrc or similar)"],"input_types":["configuration files (JSON, YAML, or custom format)",".gitignore files for automatic exclusion","command-line arguments overriding config"],"output_types":["filtered analysis results respecting configuration","configuration validation reports","analysis scope summaries"],"categories":["automation-workflow","data-processing-analysis"],"confidence":0.5,"matches":0,"success_rate":0},{"id":"github_mcp-dadbodgeoff-drift__cap_7","uri":"capability://tool.use.integration.hybrid.rust.typescript.architecture.with.native.bindings.for.performance","name":"hybrid rust-typescript architecture with native bindings for performance","description":"Implements a three-tier architecture where performance-critical operations (AST parsing, pattern matching, statistical analysis) run in Rust for speed and memory efficiency, while user-facing interfaces (CLI, MCP server, configuration handling) are implemented in TypeScript for rapid development and Node.js ecosystem access. Native bindings bridge the Rust core and TypeScript interfaces, enabling both performance and accessibility without sacrificing either.","intents":["I want fast codebase analysis that doesn't slow down my development workflow","I need Drift to scale to large codebases without memory bloat","I want to use Drift in Node.js environments without reimplementing analysis logic"],"best_for":["teams analyzing large codebases (>100k LOC) where performance matters","projects requiring both CLI and IDE integration without code duplication","developers who want the performance benefits of Rust without learning Rust"],"limitations":["Rust compilation required for source builds — adds setup complexity on unsupported platforms","Native bindings add ~50-100ms overhead per analysis invocation compared to pure Rust","Debugging issues in native bindings requires Rust knowledge — not accessible to pure-JavaScript teams"],"requires":["Node.js 18.0.0 or higher","Rust toolchain (1.70+) if building from source","npm or pnpm for TypeScript dependency management"],"input_types":["source code files","configuration parameters","analysis requests from CLI or MCP"],"output_types":["analysis results from Rust core","formatted responses from TypeScript interfaces","JSON or human-readable output"],"categories":["tool-use-integration","automation-workflow"],"confidence":0.5,"matches":0,"success_rate":0},{"id":"github_mcp-dadbodgeoff-drift__cap_8","uri":"capability://data.processing.analysis.statistical.confidence.scoring.for.pattern.detection.results","name":"statistical confidence scoring for pattern detection results","description":"Assigns statistical confidence scores to detected patterns based on frequency analysis across the codebase, indicating how consistently a pattern is followed. Patterns detected in 90% of relevant code receive higher confidence than patterns found in 30% of code, allowing AI assistants to distinguish between established conventions (high confidence) and emerging or inconsistent patterns (low confidence) when deciding whether to apply them to new code.","intents":["I want to know which patterns are consistently followed vs occasionally violated in my codebase","I need AI to apply only well-established conventions, not rare or inconsistent patterns","I want to identify patterns that are breaking down or drifting from original conventions"],"best_for":["teams wanting quantified pattern confidence rather than binary yes/no detection","projects where some patterns are aspirational but not yet consistently followed","developers using AI assistants who want to distinguish strong conventions from weak patterns"],"limitations":["Confidence scores depend on codebase size — small projects may have insufficient samples for meaningful statistics","Confidence calculation is frequency-based only — doesn't account for semantic importance or architectural criticality","No built-in thresholds for what confidence level constitutes an 'established' pattern — requires interpretation"],"requires":["Node.js 18.0.0 or higher","Codebase with sufficient samples of patterns (typically 10+ occurrences for meaningful confidence)","Drift analysis results with pattern frequency data"],"input_types":["detected patterns with occurrence counts","codebase statistics (total files, total patterns)","pattern metadata"],"output_types":["confidence scores (0.0-1.0 or percentage)","pattern frequency statistics","confidence-ranked pattern lists"],"categories":["data-processing-analysis","planning-reasoning"],"confidence":0.5,"matches":0,"success_rate":0}],"trust":{"score":44,"verified":false,"data_access_risk":"high","permissions":["Node.js 18.0.0 or higher","npm or pnpm package manager","Supported language files (.ts, .tsx, .js, .jsx, .py, .cs, .java, .php, .go, .rs, .cpp, .hpp, .cc, .h)","Write access to project directory for .drift/ folder creation","MCP-compatible IDE or CLI invocation for memory queries","MCP-compatible IDE (VS Code 1.80+, Cursor, or other MCP clients)","Drift initialized in project directory (drift init)","npm or pnpm for installation","Git (optional, for .gitignore integration)","Source code files in supported languages (.ts, .py, .cs, .java, .php, .go, .rs, .cpp, .hpp, .cc, .h)"],"failure_modes":["Pattern detection confidence depends on codebase size — small projects (<1000 LOC) may have insufficient samples for statistical significance","Rust core engine requires compilation from source on unsupported platforms, adding setup complexity","No real-time analysis during active coding — requires explicit scan invocation via CLI or MCP","Memory is stored locally in .drift/ directory — no built-in cloud sync or team collaboration features","No conflict resolution for concurrent decision updates if multiple developers modify memory simultaneously","Decision queries return raw stored data without semantic understanding — requires AI assistant to interpret relevance","MCP server requires IDE support for MCP protocol — not all editors support it yet","Tool calling latency adds ~200-500ms per query depending on codebase size and network conditions","No built-in caching of pattern results — each MCP query re-analyzes unless explicitly cached by IDE","CLI output requires manual parsing for integration into custom workflows — no built-in webhook or event system","builder identity is not verified yet","no observed match outcomes yet"],"rank_breakdown":{"adoption":0.3907100070625623,"quality":0.43,"ecosystem":0.7000000000000001,"match_graph":0.25,"freshness":0.6,"weights":{"adoption":0.25,"quality":0.25,"ecosystem":0.15,"match_graph":0.23,"freshness":0.12}},"observed_outcomes":{"matches":0,"success_rate":0,"avg_confidence":0,"top_intents":[],"last_matched_at":null},"maintenance":{"status":"active","updated_at":"2026-05-24T12:16:22.065Z","last_scraped_at":"2026-05-03T14:23:34.856Z","last_commit":"2026-02-13T12:18:43Z"},"community":{"stars":777,"forks":64,"weekly_downloads":null,"model_downloads":null,"model_likes":null}},"distribution":{"claim_url":"https://unfragile.ai/submit?claim=mcp-dadbodgeoff-drift","compare_url":"https://unfragile.ai/compare?artifact=mcp-dadbodgeoff-drift"}},"signature":"vYSuiBHEp6P1w4woaDKublZIjC37tPcuGwGTskEnpb56EyI9jUlogtvkTW5p9lXud3yUmHBadmIioK8m5o9WCA==","signedAt":"2026-06-20T20:47:43.846Z","signedBy":"unfragile.ai","version":1},"_links":{"self":"https://unfragile.ai/api/v1/passport/mcp-dadbodgeoff-drift","artifact":"https://unfragile.ai/mcp-dadbodgeoff-drift","verify":"https://unfragile.ai/api/v1/verify?slug=mcp-dadbodgeoff-drift","publicKey":"https://unfragile.ai/api/v1/trust-passport-public-key","spec":"https://unfragile.ai/trust","schema":"https://unfragile.ai/schema.json","docs":"https://unfragile.ai/docs"}}