{"id":"invoke-re-binja-lattice-mcp","name":"binja-lattice-mcp","homepage":null,"repo_url":"https://github.com/Invoke-RE/binja-lattice-mcp","category":"ai-ml","subcategories":[],"tags":["reverse-engineering","binary-analysis","mcp","python","rest","binary-ninja","tooling","annotation"],"what_it_does":"Provides a Binary Ninja plugin and MCP server bridge that lets clients query binary analysis data (functions, disassembly/pseudocode, types, tags, progress, strings/bytes/search) and also modify the active Binary Ninja database (rename functions/variables, add comments, set types/signatures, create structs/tags) over an HTTP/REST interface exposed to an MCP server/client workflow.","use_cases":["LLM-assisted reverse engineering workflows in Binary Ninja via MCP tools","Programmatic extraction of binary metadata and analysis context for downstream reasoning","Automated or semi-automated annotation improvements (renames, comments, types) driven by LLMs","Searching for byte patterns and inspecting global/data regions referenced by code"],"not_for":["Use as a general internet-facing API without deploying behind strong network controls","Multi-tenant production SaaS use without additional hardening and auditing","High-assurance environments where modifying the Binary Ninja database must be tightly controlled/approved"],"best_when":"Running locally (or within a trusted network) with short-lived credentials, where an agent can call MCP tools to read/annotate a single Binary Ninja database interactively.","avoid_when":"Exposing the service broadly to untrusted clients, logging/handling API keys insecurely, or when agent-driven write operations (renames/types/comments) require strict change governance.","alternatives":["Use Binary Ninja’s own scripting/plugins (Python) directly rather than an MCP bridge","Custom MCP servers built around Binary Ninja’s Python API","Other reverse-engineering automation frameworks that integrate directly with decompiler outputs"],"af_score":53.0,"security_score":43.8,"reliability_score":30.0,"package_type":"mcp_server","discovery_source":["github"],"priority":"high","status":"evaluated","version_evaluated":null,"last_evaluated":"2026-03-30T13:55:42.819089+00:00","interface":{"has_rest_api":true,"has_graphql":false,"has_grpc":false,"has_mcp_server":true,"mcp_server_url":null,"has_sdk":true,"sdk_languages":["Python"],"openapi_spec_url":null,"webhooks":false},"auth":{"methods":["API key / token via environment variable (BNJLAT)","Username+password CLI client flags (password interpreted as API key/token)"],"oauth":false,"scopes":false,"notes":"Authentication is token/API-key based with token expiration/renewal described; scope granularity is not described in the provided README."},"pricing":{"model":null,"free_tier_exists":false,"free_tier_limits":null,"paid_tiers":[],"requires_credit_card":false,"estimated_workload_costs":null,"notes":"Self-hosted open-source plugin; no pricing details provided."},"requirements":{"requires_signup":false,"requires_credit_card":false,"domain_verification":false,"data_residency":[],"compliance":[],"min_contract":null},"agent_readiness":{"af_score":53.0,"security_score":43.8,"reliability_score":30.0,"mcp_server_quality":75.0,"documentation_accuracy":70.0,"error_message_quality":0.0,"error_message_notes":null,"auth_complexity":55.0,"rate_limit_clarity":20.0,"tls_enforcement":55.0,"auth_strength":60.0,"scope_granularity":20.0,"dependency_hygiene":45.0,"secret_handling":35.0,"security_notes":"README indicates token-based auth with expiration/renewal and optional TLS (disabled by default). API key is generated and shown in Binary Ninja logs, and tokens are passed via environment variable; this can be risky if logs or environments are exposed. No evidence of fine-grained scopes or detailed authorization controls in the provided documentation.","uptime_documented":0.0,"version_stability":50.0,"breaking_changes_history":40.0,"error_recovery":30.0,"idempotency_support":"false","idempotency_notes":"Read operations are likely effectively idempotent; write operations (rename/update/create) are not described as idempotent or conflict-safe.","pagination_style":"none","retry_guidance_documented":false,"known_agent_gotchas":["Service prints/shows API key in Binary Ninja logs at server start—agents should avoid capturing/logging secrets.","Write tools can permanently alter the active Binary Ninja database; agents should confirm intended changes before applying.","Token expiration/renewal exists but retry/reauth behavior is not clearly documented for tool calls."]}}