{"id":"smat-dev-jinni","name":"jinni","homepage":null,"repo_url":"https://github.com/smat-dev/jinni","category":"devtools","subcategories":[],"tags":["ai-ml","mcp","developer-tools","code-context","cli","filesystem-reader","prompt-reduction"],"what_it_does":"Jinni generates a consolidated text dump of a project's relevant files (with per-file path headers) to provide LLMs with project context. It includes an MCP server exposing a read_context tool for agent-driven context retrieval with .gitignore/.contextfiles-style filtering, and a CLI that outputs or copies the context (or just lists included file paths) for manual use.","use_cases":["Give an LLM a targeted view of a codebase (single module, directory, or the whole repo) for debugging or feature work","Automate “project context” retrieval in MCP-capable IDE/agent clients (Cursor, Cline, Roo, Claude Desktop, etc.)","Pre-generate context dumps for copy/paste into systems that don’t integrate with MCP","Reduce prompt/token waste by excluding binaries, dotfiles/hidden dirs, logs/build/temp files using ignore-style rules","Control context size with a configurable 100MB default and get actionable error details when exceeded"],"not_for":["Production-grade secure multi-tenant deployments without additional isolation (it reads local filesystem content)","Situations where the LLM should not be allowed to access arbitrary files within an allowed root directory","Long-running interactive workflows that require streaming or pagination (it returns a single concatenated string)"],"best_when":"You’re using an MCP-enabled developer agent/IDE and want an automated, filterable snapshot of local repo files as LLM context.","avoid_when":"You cannot safely constrain file access (e.g., via an explicit --root) or you need incremental/streaming retrieval instead of a single context dump.","alternatives":["Repo/Code search tools (e.g., ripgrep + manual selection) to gather only specific files","RAG/code-indexing solutions (e.g., embeddings-based tools) for scalable retrieval","Other MCP codebase context tools (framework-specific or repository mappers)","Static project documentation summarizers (README-first or architecture extraction tools)"],"af_score":67.7,"security_score":53.2,"reliability_score":37.5,"package_type":"mcp_server","discovery_source":["github"],"priority":"high","status":"evaluated","version_evaluated":null,"last_evaluated":"2026-03-30T13:34:48.309537+00:00","interface":{"has_rest_api":false,"has_graphql":false,"has_grpc":false,"has_mcp_server":true,"mcp_server_url":null,"has_sdk":false,"sdk_languages":[],"openapi_spec_url":null,"webhooks":false},"auth":{"methods":["None indicated (local MCP server invoked by client)"],"oauth":false,"scopes":false,"notes":"Authentication/authorization are not described in the README; the primary control mechanism is filesystem scoping via project_root/targets and optionally constraining reads with a server --root argument."},"pricing":{"model":null,"free_tier_exists":false,"free_tier_limits":null,"paid_tiers":[],"requires_credit_card":false,"estimated_workload_costs":null,"notes":"No pricing information provided; appears to be an open-source tool distributed via PyPI/uv."},"requirements":{"requires_signup":false,"requires_credit_card":false,"domain_verification":false,"data_residency":[],"compliance":[],"min_contract":null},"agent_readiness":{"af_score":67.7,"security_score":53.2,"reliability_score":37.5,"mcp_server_quality":78.0,"documentation_accuracy":78.0,"error_message_quality":null,"error_message_notes":"Mentions aborting with DetailedContextSizeError including the 10 largest files; no further examples of error payload structure.","auth_complexity":90.0,"rate_limit_clarity":5.0,"tls_enforcement":70.0,"auth_strength":20.0,"scope_granularity":70.0,"dependency_hygiene":55.0,"secret_handling":60.0,"security_notes":"Primary risk is local filesystem exposure: the tool reads project files and can be constrained via MCP project_root/targets and an optional server --root for safety. No auth is described (since it’s local); thus the security model relies on restricting filesystem scope and filtering. Output can include large amounts of source text; ensure you don’t inadvertently include sensitive files by tightening ignore rules and roots. Dependency hygiene cannot be fully verified from provided content; dependencies include mcp, pathspec, pyperclip, pydantic, tiktoken.","uptime_documented":0.0,"version_stability":55.0,"breaking_changes_history":30.0,"error_recovery":65.0,"idempotency_support":"true","idempotency_notes":"Read-only behavior (context generation) is effectively idempotent for the same inputs and filesystem state.","pagination_style":"none","retry_guidance_documented":true,"known_agent_gotchas":["Cursor may silently drop context if it exceeds client maximum size; reduce what you request (e.g., narrower targets).","If you pass empty rules list [] in MCP, built-in defaults are used; if non-empty, built-in defaults and .contextfiles are ignored (easy to misunderstand).","Targets must resolve inside project_root; providing targets outside may fail.","Context size can abort with DetailedContextSizeError; agents may need to retry with smaller targets or tighter rules."]}}