{"passport":{"unfragile":{"@version":"1.0","version":"2026-05","artifact":{"id":"github_mcp-mattzcarey-shippie","slug":"mcp-mattzcarey-shippie","name":"shippie","type":"agent","url":"https://github.com/mattzcarey/shippie","page_url":"https://unfragile.ai/mcp-mattzcarey-shippie","categories":["code-review-security"],"tags":["agent","agents","cicd","code-quality","code-review","github","gpt-4","huggingface","mcp","modelcontextprotocol","openai","opensource","qa","qa-automation","quality-assurance"],"pricing":{"model":"open_source","free":true,"starting_price":null},"status":"active","verified":false},"capabilities":[{"id":"github_mcp-mattzcarey-shippie__cap_0","uri":"capability://tool.use.integration.multi.provider.llm.agent.orchestration.with.tool.based.code.analysis","name":"multi-provider llm agent orchestration with tool-based code analysis","description":"Shippie implements an agentic loop that routes LLM requests to multiple providers (OpenAI, Anthropic, Google, Azure) via a unified model string parser (e.g., 'openai:gpt-4o', 'anthropic:claude-3-5-sonnet'). The agent uses Vercel's AI SDK abstraction layer to normalize provider APIs, then executes tool calls (readFile, readDiff, suggestChanges) in a loop up to a configurable max step limit (default 25). This enables the LLM to autonomously decide which files to inspect and what feedback to provide without pre-fetching all context.","intents":["I want to run code reviews using different LLM providers without rewriting integration logic","I need to limit LLM agent execution steps to control costs and latency in CI/CD pipelines","I want the LLM to autonomously decide which files to analyze rather than sending all diffs upfront"],"best_for":["Teams evaluating multiple LLM providers for code review","Organizations with cost-sensitive CI/CD pipelines wanting step-limited agents","Developers building extensible code review workflows"],"limitations":["Provider abstraction adds ~50-100ms latency per tool invocation due to SDK marshalling","No built-in provider fallback — if primary provider fails, entire review fails","Max step limit (default 25) may truncate analysis on large changesets; requires tuning per codebase","Azure provider requires 4 separate environment variables (instance, deployment, version, key) vs 1 for others"],"requires":["Node.js 18+ (TypeScript runtime)","API key for at least one provider: OPENAI_API_KEY, ANTHROPIC_API_KEY, GOOGLE_API_KEY, or Azure equivalents","@ai-sdk/openai, @ai-sdk/anthropic, @ai-sdk/google, or @ai-sdk/azure npm packages"],"input_types":["model string (e.g., 'openai:gpt-4o')","environment variables for API credentials","git diff/file content (passed to agent tools)"],"output_types":["structured LLM responses","tool call results (file contents, diffs)","code review feedback (text)"],"categories":["tool-use-integration","planning-reasoning"],"confidence":0.5,"matches":0,"success_rate":0},{"id":"github_mcp-mattzcarey-shippie__cap_1","uri":"capability://tool.use.integration.tool.based.code.inspection.with.autonomous.file.diff.selection","name":"tool-based code inspection with autonomous file/diff selection","description":"Shippie provides three core tools (readFile, readDiff, suggestChanges) that the LLM agent can invoke autonomously during the review loop. The readFile tool fetches full file contents from the codebase, readDiff retrieves git diffs for changed files, and suggestChanges outputs structured feedback. The agent decides which files to inspect based on the initial diff summary, enabling selective analysis rather than loading all context upfront. Tools are registered via a schema-based function registry compatible with OpenAI and Anthropic function-calling APIs.","intents":["I want the LLM to autonomously decide which files to inspect based on change impact","I need to provide structured feedback (suggestions, severity levels) that integrates with PR comments","I want to avoid sending entire codebases to the LLM by letting it fetch only relevant files"],"best_for":["Teams with large codebases where full-context review is expensive","Developers building custom code review rules via LLM agents","CI/CD pipelines where selective analysis reduces token usage"],"limitations":["readFile tool has no built-in caching — repeated file fetches incur redundant I/O","readDiff requires git history to be available; fails in shallow clones or detached HEAD states","suggestChanges tool outputs unstructured text; no schema validation for severity/category fields","No rate limiting on tool calls — agent can exhaust API quotas if max steps is too high"],"requires":["Git repository with accessible .git directory","File system read permissions for codebase files","LLM provider supporting function calling (OpenAI, Anthropic, Google, Azure)"],"input_types":["file paths (string)","git diff context (string)","LLM-generated tool invocation schemas"],"output_types":["file contents (string)","git diffs (unified diff format)","structured feedback (text with optional severity/category)"],"categories":["tool-use-integration","code-generation-editing"],"confidence":0.5,"matches":0,"success_rate":0},{"id":"github_mcp-mattzcarey-shippie__cap_10","uri":"capability://text.generation.language.review.language.customization.for.non.english.feedback","name":"review language customization for non-english feedback","description":"Shippie supports review output in multiple languages via the --reviewLanguage CLI flag (default: English). The language preference is passed to the LLM system prompt, instructing it to generate feedback in the specified language. This enables teams in non-English-speaking regions to receive code review feedback in their native language (Spanish, French, German, Japanese, etc.). Language customization is simple (single flag) and works with any LLM provider that supports the target language.","intents":["I want code review feedback in my team's native language (not English)","I need to support multiple languages across different team regions","I want to reduce cognitive load for non-native English speakers by providing feedback in their language"],"best_for":["International teams with non-English native speakers","Organizations in non-English-speaking countries","Distributed teams with mixed language preferences"],"limitations":["Language support depends on LLM model knowledge; older models may have weak support for non-English languages","No validation that the LLM actually generates output in the requested language; fallback to English is possible","Language customization is global (all reviews in one language); no per-file or per-team language selection","No translation of platform-specific terms (GitHub PR, GitLab MR); these remain in English"],"requires":["LLM model with knowledge of target language (GPT-4, Claude 3.5+ recommended)","--reviewLanguage flag set to target language (e.g., --reviewLanguage=Spanish)"],"input_types":["language identifier (string, e.g., 'Spanish', 'French', 'Japanese')","code review context (unchanged)"],"output_types":["review feedback in target language (text)","language-specific formatting (e.g., Spanish punctuation)"],"categories":["text-generation-language","automation-workflow"],"confidence":0.5,"matches":0,"success_rate":0},{"id":"github_mcp-mattzcarey-shippie__cap_11","uri":"capability://automation.workflow.debug.logging.and.diagnostic.output.for.troubleshooting","name":"debug logging and diagnostic output for troubleshooting","description":"Shippie includes a --debug flag that enables verbose logging of internal operations: LLM API calls, tool invocations, token counts, platform API interactions, and error traces. Debug output is written to stderr and includes timestamps, component names, and detailed error messages. This enables developers to diagnose issues (API failures, tool errors, platform authentication problems) without modifying code. Debug logs include full LLM request/response payloads (sanitized of sensitive data), making it easier to understand LLM behavior and prompt effectiveness.","intents":["I want to diagnose why code review is failing (API errors, authentication issues, tool failures)","I need to understand what the LLM is doing (prompts, tool calls, responses) to debug review quality","I want to troubleshoot platform integration issues (GitHub API errors, GitLab authentication)"],"best_for":["Developers troubleshooting Shippie integration issues","Teams debugging custom review rules or tool implementations","Support engineers diagnosing customer issues"],"limitations":["Debug output is verbose and unstructured; parsing requires manual inspection or regex","No log aggregation or centralized logging; logs are stdout/stderr only","Sensitive data (API keys, tokens) may be logged if not properly sanitized; requires careful review","Debug flag is global; no per-component or per-level logging control","No persistent debug logs; output is lost after process exit unless redirected to file"],"requires":["--debug flag enabled in CLI or GitHub Actions","Access to stdout/stderr (terminal or log file)"],"input_types":["--debug flag (boolean)"],"output_types":["verbose debug logs (stderr, plain text)","LLM request/response payloads","tool invocation traces","platform API call logs","error stack traces"],"categories":["automation-workflow","safety-moderation"],"confidence":0.5,"matches":0,"success_rate":0},{"id":"github_mcp-mattzcarey-shippie__cap_12","uri":"capability://tool.use.integration.custom.base.url.support.for.llm.provider.api.endpoints","name":"custom base url support for llm provider api endpoints","description":"Shippie supports the --baseUrl flag to override the default LLM provider API endpoint, enabling integration with custom or self-hosted LLM services. This is useful for organizations using Azure OpenAI (which requires a custom endpoint), local LLM servers (e.g., Ollama, vLLM), or proxy services. The baseUrl is passed to the Vercel AI SDK, which routes all LLM requests to the custom endpoint instead of the default provider URL. This enables Shippie to work with any LLM service compatible with OpenAI or Anthropic APIs.","intents":["I want to use Azure OpenAI instead of the public OpenAI API","I need to run Shippie with a self-hosted LLM (Ollama, vLLM, local server)","I want to route LLM requests through a proxy or custom gateway"],"best_for":["Organizations using Azure OpenAI or other cloud providers","Teams running self-hosted LLMs for data privacy or cost reasons","Enterprises with custom API gateways or proxies"],"limitations":["Custom endpoints must be compatible with OpenAI or Anthropic API formats; incompatible APIs require custom integration","No validation that the custom endpoint is reachable or compatible; failures are discovered at runtime","Self-hosted LLMs may have different performance characteristics (latency, throughput) than cloud providers","No built-in retry logic for custom endpoints; transient failures cause review to fail","Custom endpoints may have different rate limits or quotas than cloud providers"],"requires":["--baseUrl flag set to custom endpoint URL (e.g., https://custom-llm.example.com/v1)","Custom endpoint compatible with OpenAI or Anthropic API format","Network access to custom endpoint from Shippie runtime"],"input_types":["custom base URL (string, e.g., https://custom-llm.example.com/v1)","model string (e.g., openai:gpt-4o, anthropic:claude-3-5-sonnet)"],"output_types":["LLM responses from custom endpoint","review feedback (unchanged)"],"categories":["tool-use-integration","automation-workflow"],"confidence":0.5,"matches":0,"success_rate":0},{"id":"github_mcp-mattzcarey-shippie__cap_2","uri":"capability://tool.use.integration.multi.platform.git.integration.with.unified.provider.abstraction","name":"multi-platform git integration with unified provider abstraction","description":"Shippie abstracts Git platform differences (GitHub, GitLab, Azure DevOps) behind a PlatformProvider interface, enabling the same review logic to run on any platform. The system uses platform-specific SDKs (octokit for GitHub, @gitbeaker/rest for GitLab, azure-devops-node-api for Azure) but normalizes their APIs through a common interface. Platform detection is automatic via the --platform CLI flag or GitHub Actions context. Review comments are posted back to the platform using platform-native APIs (PR comments for GitHub, merge request notes for GitLab, etc.).","intents":["I want to run the same code review agent across GitHub, GitLab, and Azure DevOps without rewriting logic","I need review feedback to appear as native PR/MR comments on my platform","I want to automatically detect the platform from CI/CD context without manual configuration"],"best_for":["Organizations using multiple Git platforms across teams","Teams migrating from one platform to another","Enterprises with Azure DevOps or GitLab that want GitHub-like review automation"],"limitations":["Platform abstraction doesn't cover all provider-specific features (e.g., GitHub's review state, GitLab's approval rules); advanced features require custom code","Azure DevOps integration requires 4 environment variables (organization, project, PAT) vs simpler GitHub token auth","No built-in retry logic for platform API failures — transient errors cause review to fail","Comment formatting is platform-agnostic markdown; platform-specific formatting (GitHub's suggestion blocks) requires custom templates"],"requires":["Platform-specific credentials: GitHub token, GitLab token, or Azure DevOps PAT","octokit (GitHub), @gitbeaker/rest (GitLab), or azure-devops-node-api (Azure) npm packages","Repository access permissions (read for analysis, write for posting comments)"],"input_types":["platform identifier (github, gitlab, azdev, local)","platform credentials (token/PAT)","PR/MR metadata (number, branch, commit)"],"output_types":["review comments posted to platform","structured feedback (text, severity, file/line references)"],"categories":["tool-use-integration","automation-workflow"],"confidence":0.5,"matches":0,"success_rate":0},{"id":"github_mcp-mattzcarey-shippie__cap_3","uri":"capability://code.generation.editing.language.aware.code.review.with.15.language.support","name":"language-aware code review with 15+ language support","description":"Shippie includes a languageMap that maps file extensions to programming languages (JavaScript, TypeScript, Python, Go, Rust, C++, Java, etc.), enabling the LLM to apply language-specific review rules. The language context is passed to the LLM prompt, allowing it to understand language idioms, common pitfalls, and best practices. Language detection is automatic based on file extension; no manual configuration required. The system supports 15+ languages including dynamic languages (Python, Ruby, PHP), compiled languages (Go, Rust, C++, Java), and infrastructure-as-code (Terraform, HCL).","intents":["I want the LLM to understand language-specific best practices (e.g., Python PEP 8, Go idioms)","I need code review to work across polyglot codebases without manual language configuration","I want to catch language-specific anti-patterns (e.g., mutable default arguments in Python)"],"best_for":["Polyglot teams with multiple languages in a single repository","Organizations standardizing on language-specific best practices","Developers building multi-language microservices"],"limitations":["Language detection is extension-based only; no semantic analysis to detect language from content (e.g., shebang lines)","languageMap is hardcoded; adding new languages requires code changes, not configuration","LLM language knowledge varies by model; older models may have weak support for newer languages (e.g., Rust, Kotlin)","No language-specific linting integration; relies entirely on LLM knowledge, missing tool-based checks (eslint, pylint, etc.)"],"requires":["File extensions matching the languageMap (e.g., .py for Python, .go for Go)","LLM model with knowledge of target languages (GPT-4, Claude 3.5+ recommended)"],"input_types":["file path with extension","file content (code)","language identifier (auto-detected from extension)"],"output_types":["language-aware feedback (text)","language-specific suggestions (idioms, patterns)"],"categories":["code-generation-editing","planning-reasoning"],"confidence":0.5,"matches":0,"success_rate":0},{"id":"github_mcp-mattzcarey-shippie__cap_4","uri":"capability://automation.workflow.github.actions.ci.cd.integration.with.automatic.pr.triggering","name":"github actions ci/cd integration with automatic pr triggering","description":"Shippie provides a GitHub Action (action.yml) that integrates into GitHub workflows, automatically triggering code review on pull request creation or updates. The action reads PR metadata from GitHub Actions context (PR number, branch, commit), invokes the Shippie review engine, and posts comments back to the PR using the GitHub API. Configuration is via action inputs (platform, modelString, reviewLanguage, maxSteps, baseUrl, debug) that map to CLI arguments. The action handles credential injection (API keys as secrets) and provides structured output (review summary, token usage) for downstream workflow steps.","intents":["I want code review to run automatically on every PR without manual CLI invocation","I need to configure review behavior (model, language, max steps) via GitHub Actions YAML","I want review feedback to appear as PR comments without additional setup"],"best_for":["GitHub-based teams with existing CI/CD workflows","Organizations wanting zero-friction code review automation","Teams using GitHub Actions for other CI/CD tasks"],"limitations":["GitHub Actions-only; no native support for GitLab CI, Jenkins, or other CI/CD platforms (requires custom wrapper)","Action runs in GitHub-hosted runners with standard resource limits (2 CPU, 7GB RAM); large codebases may timeout","No built-in caching of LLM responses; repeated reviews of the same PR incur duplicate API costs","Action output (review summary, token usage) is not structured; parsing requires regex or custom parsing logic","Credentials (API keys) must be added as GitHub Secrets; no support for OIDC or workload identity federation"],"requires":["GitHub repository with Actions enabled","GitHub Actions workflow file (.github/workflows/*.yml)","API key for LLM provider stored as GitHub Secret (OPENAI_API_KEY, ANTHROPIC_API_KEY, etc.)","GitHub token with write access to pull requests (provided automatically by GitHub Actions)"],"input_types":["GitHub Actions inputs (modelString, reviewLanguage, maxSteps, etc.)","GitHub Actions context (github.event.pull_request)","PR metadata (number, branch, commit)"],"output_types":["PR comments with review feedback","GitHub Actions job output (review summary, token usage)","structured exit codes (0 for success, non-zero for failure)"],"categories":["automation-workflow","tool-use-integration"],"confidence":0.5,"matches":0,"success_rate":0},{"id":"github_mcp-mattzcarey-shippie__cap_5","uri":"capability://planning.reasoning.configurable.review.prompts.with.custom.templates.and.examples","name":"configurable review prompts with custom templates and examples","description":"Shippie uses a prompt-based architecture (src/review/prompt/prompts.ts) where the LLM receives a system prompt defining review criteria, followed by initial file examples (initialFilesExample.ts) that demonstrate the expected review format. The prompt is customizable via configuration files, enabling teams to define organization-specific review rules (e.g., 'flag all console.log statements', 'require JSDoc comments'). The system includes built-in examples showing the LLM how to structure feedback (severity levels, file references, suggested changes). Prompts are language-aware, adapting to the target language (Python, Go, JavaScript, etc.).","intents":["I want to define custom code review rules specific to my team's standards","I need the LLM to understand our organization's best practices without manual prompt engineering","I want to provide examples of good/bad code patterns to guide the LLM's feedback"],"best_for":["Teams with custom coding standards or architectural patterns","Organizations wanting to enforce domain-specific rules (e.g., security, performance)","Developers building internal code review policies"],"limitations":["Prompt customization requires editing configuration files; no UI for non-technical users","No A/B testing framework for prompt variants; changes require manual evaluation","Prompt length directly impacts token usage and latency; overly detailed prompts increase costs","LLM behavior is sensitive to prompt wording; small changes can significantly alter review quality","No built-in versioning for prompts; tracking changes requires external version control"],"requires":["Configuration file (YAML or JSON) in repository or passed via CLI","Understanding of prompt engineering principles","Access to modify Shippie configuration (src/review/prompt/prompts.ts for hardcoded changes)"],"input_types":["custom prompt template (text)","code examples (good/bad patterns)","review criteria (structured or free-form)"],"output_types":["LLM system prompt (text)","review feedback aligned with custom rules","structured examples for LLM few-shot learning"],"categories":["planning-reasoning","text-generation-language"],"confidence":0.5,"matches":0,"success_rate":0},{"id":"github_mcp-mattzcarey-shippie__cap_6","uri":"capability://automation.workflow.local.cli.based.code.review.without.ci.cd.integration","name":"local cli-based code review without ci/cd integration","description":"Shippie can run locally via CLI (shippie review) to analyze staged git files without CI/CD infrastructure. The local mode uses the LocalProvider to read git diffs from the current repository, invoke the LLM review engine, and output feedback to stdout. This enables developers to run code review on their machine before pushing to CI/CD, catching issues early. The CLI supports all configuration options (modelString, reviewLanguage, maxSteps, debug) as command-line flags, making it scriptable and composable with other tools. Local mode requires no platform credentials (GitHub token, etc.), only LLM API keys.","intents":["I want to run code review locally before pushing to CI/CD","I need a fast feedback loop for code quality without waiting for GitHub Actions","I want to test review rules locally before committing to a CI/CD pipeline"],"best_for":["Individual developers working on feature branches","Teams with pre-commit hooks or local development workflows","Developers prototyping custom review rules"],"limitations":["Local mode only analyzes staged files (git add); requires explicit staging, not automatic on all changes","No integration with PR metadata (PR number, author, etc.); feedback is generic","Output is stdout-only; no persistent storage of review history","Requires LLM API key to be available locally (environment variable); no credential management","No rate limiting; developers can easily exhaust API quotas with repeated local runs"],"requires":["Node.js 18+ runtime","Git repository with staged files (git add)","LLM API key in environment variable (OPENAI_API_KEY, ANTHROPIC_API_KEY, etc.)","npm or bun package manager to install Shippie"],"input_types":["staged git files (from git index)","git diffs (from git diff --cached)","CLI flags (modelString, reviewLanguage, maxSteps, debug)"],"output_types":["review feedback (stdout, plain text or JSON)","token usage summary","exit code (0 for success, non-zero for failure)"],"categories":["automation-workflow","code-generation-editing"],"confidence":0.5,"matches":0,"success_rate":0},{"id":"github_mcp-mattzcarey-shippie__cap_7","uri":"capability://automation.workflow.automated.setup.wizard.with.platform.specific.configuration","name":"automated setup wizard with platform-specific configuration","description":"Shippie includes an interactive setup command (shippie setup) that guides users through platform-specific configuration. The wizard prompts for LLM API keys, platform selection (GitHub, GitLab, Azure DevOps), and creates platform-specific workflow files (.github/workflows/pr.yml for GitHub, .gitlab-ci.yml for GitLab, etc.). It automatically adds API keys as platform secrets (GitHub Secrets, GitLab CI variables, Azure DevOps secrets) without exposing them in configuration files. The setup flow is defined in src/configure/index.ts and supports multiple platforms with minimal user input.","intents":["I want to set up Shippie without manually creating workflow files or managing secrets","I need platform-specific setup (GitHub Actions, GitLab CI, Azure Pipelines) without reading documentation","I want to securely store API keys without hardcoding them in configuration"],"best_for":["Non-technical users (product managers, QA) setting up code review","Teams new to Shippie wanting quick onboarding","Organizations with multiple platforms needing consistent setup"],"limitations":["Setup wizard is interactive CLI-only; no web UI for non-technical users","Wizard assumes standard repository structure (.github/workflows for GitHub); custom paths require manual setup","Secret management is platform-specific; Azure DevOps setup is more complex (requires organization, project, PAT)","Wizard doesn't validate API keys before storing them; invalid keys are discovered at runtime","No rollback mechanism; if setup fails partway, manual cleanup may be required"],"requires":["Node.js 18+ runtime","Git repository with write access","LLM API key (obtained from provider beforehand)","Platform credentials (GitHub token, GitLab token, or Azure DevOps PAT) for secret management"],"input_types":["interactive prompts (platform selection, API key)","platform credentials (for secret creation)"],"output_types":["platform-specific workflow files (.github/workflows/pr.yml, .gitlab-ci.yml, etc.)","platform secrets (GitHub Secrets, GitLab CI variables, Azure DevOps secrets)","setup completion summary"],"categories":["automation-workflow","tool-use-integration"],"confidence":0.5,"matches":0,"success_rate":0},{"id":"github_mcp-mattzcarey-shippie__cap_8","uri":"capability://data.processing.analysis.token.usage.tracking.and.cost.reporting","name":"token usage tracking and cost reporting","description":"Shippie tracks LLM token consumption during review (input tokens, output tokens, total cost) and reports it in the review summary. The tracking is implemented in src/common/formatting/usage.ts and aggregates token counts from each LLM provider call. Cost is calculated using provider-specific pricing (e.g., GPT-4o input/output rates) and displayed in the review output. This enables teams to monitor API spending and optimize review configurations (e.g., reducing maxSteps to lower costs). Token usage is reported both in CLI output and GitHub Actions job summaries.","intents":["I want to track LLM API costs for code review to budget and optimize spending","I need to understand which review configurations (model, maxSteps) are most cost-effective","I want to set up cost alerts or limits to prevent unexpected API bills"],"best_for":["Organizations with large codebases running frequent reviews","Teams optimizing LLM API spending","Finance teams tracking AI infrastructure costs"],"limitations":["Token tracking is provider-specific; pricing calculations are hardcoded and may drift from actual provider rates","No cost limits or alerts; teams must manually monitor spending to prevent overages","Token usage is reported per review; no aggregation across multiple reviews or time periods","Pricing data is static in code; updates require code changes, not configuration","No breakdown of token usage by tool (readFile, readDiff, suggestChanges); only aggregate counts"],"requires":["LLM provider with token counting support (OpenAI, Anthropic, Google, Azure)","Provider pricing data (hardcoded in Shippie or fetched from provider API)"],"input_types":["LLM provider responses (with token counts)","provider pricing configuration"],"output_types":["token usage summary (input, output, total)","cost estimate (in USD or provider currency)","cost breakdown by provider/model"],"categories":["data-processing-analysis","automation-workflow"],"confidence":0.5,"matches":0,"success_rate":0},{"id":"github_mcp-mattzcarey-shippie__cap_9","uri":"capability://tool.use.integration.extensible.tool.registry.for.custom.code.analysis","name":"extensible tool registry for custom code analysis","description":"Shippie implements a tool registry (src/common/llm/tools/index.ts) where custom analysis tools can be registered and made available to the LLM agent. Tools are defined as functions with schema metadata (name, description, parameters) that the LLM can invoke during the review loop. The built-in tools (readFile, readDiff, suggestChanges) are registered in the same way, making the system fully extensible. New tools can be added by implementing the tool interface and registering them in the tool registry, enabling teams to add custom analysis (e.g., security scanning, performance profiling, dependency checking) without modifying the core agent logic.","intents":["I want to add custom analysis tools (security scanners, linters, profilers) to the code review agent","I need the LLM to invoke custom tools alongside built-in tools (readFile, readDiff)","I want to extend Shippie with domain-specific analysis without forking the codebase"],"best_for":["Teams with custom code analysis requirements (security, performance, compliance)","Organizations building internal code review platforms","Developers extending Shippie with proprietary analysis tools"],"limitations":["Tool registry is code-based; adding tools requires TypeScript knowledge and code changes","No dynamic tool loading; tools must be registered at startup, not runtime","Tool schema must be compatible with LLM function-calling APIs; complex schemas may not work","No built-in error handling for tool failures; if a custom tool crashes, the entire review fails","Tool output is unstructured text; no schema validation for tool results"],"requires":["TypeScript knowledge to implement tool interface","Understanding of LLM function-calling schemas (OpenAI, Anthropic format)","Access to modify src/common/llm/tools/index.ts or equivalent"],"input_types":["tool function (TypeScript function)","tool schema (name, description, parameters)","tool implementation (logic for analysis)"],"output_types":["tool result (text or structured data)","tool invocation metadata (name, parameters, result)"],"categories":["tool-use-integration","code-generation-editing"],"confidence":0.5,"matches":0,"success_rate":0}],"trust":{"score":42,"verified":false,"data_access_risk":"high","permissions":["Node.js 18+ (TypeScript runtime)","API key for at least one provider: OPENAI_API_KEY, ANTHROPIC_API_KEY, GOOGLE_API_KEY, or Azure equivalents","@ai-sdk/openai, @ai-sdk/anthropic, @ai-sdk/google, or @ai-sdk/azure npm packages","Git repository with accessible .git directory","File system read permissions for codebase files","LLM provider supporting function calling (OpenAI, Anthropic, Google, Azure)","LLM model with knowledge of target language (GPT-4, Claude 3.5+ recommended)","--reviewLanguage flag set to target language (e.g., --reviewLanguage=Spanish)","--debug flag enabled in CLI or GitHub Actions","Access to stdout/stderr (terminal or log file)"],"failure_modes":["Provider abstraction adds ~50-100ms latency per tool invocation due to SDK marshalling","No built-in provider fallback — if primary provider fails, entire review fails","Max step limit (default 25) may truncate analysis on large changesets; requires tuning per codebase","Azure provider requires 4 separate environment variables (instance, deployment, version, key) vs 1 for others","readFile tool has no built-in caching — repeated file fetches incur redundant I/O","readDiff requires git history to be available; fails in shallow clones or detached HEAD states","suggestChanges tool outputs unstructured text; no schema validation for severity/category fields","No rate limiting on tool calls — agent can exhaust API quotas if max steps is too high","Language support depends on LLM model knowledge; older models may have weak support for non-English languages","No validation that the LLM actually generates output in the requested language; fallback to English is possible","builder identity is not verified yet","no observed match outcomes yet"],"rank_breakdown":{"adoption":0.512438993773372,"quality":0.35,"ecosystem":0.6000000000000001,"match_graph":0.25,"freshness":0.6,"weights":{"adoption":0.25,"quality":0.25,"ecosystem":0.1,"match_graph":0.28,"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:38.364Z","last_commit":"2025-11-24T18:31:04Z"},"community":{"stars":2356,"forks":242,"weekly_downloads":null,"model_downloads":null,"model_likes":null}},"distribution":{"claim_url":"https://unfragile.ai/submit?claim=mcp-mattzcarey-shippie","compare_url":"https://unfragile.ai/compare?artifact=mcp-mattzcarey-shippie"}},"signature":"bYjyN80WVAy0Nj4fzjP2FqNaVduyNe7qLWCHNG+G9x7hiOveVdBGIIcpl1FLiwUGjCbhjoPRS7DaMvD0eSz2Dg==","signedAt":"2026-06-22T00:25:41.670Z","signedBy":"unfragile.ai","version":1},"_links":{"self":"https://unfragile.ai/api/v1/passport/mcp-mattzcarey-shippie","artifact":"https://unfragile.ai/mcp-mattzcarey-shippie","verify":"https://unfragile.ai/api/v1/verify?slug=mcp-mattzcarey-shippie","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"}}