{"name":"io.github.theSharque/mcp-architector","slug":"thesharque-mcp-architector","title":"mcp-architector","description":"MCP server for architecture and system design. Store and manage project architecture locally.","url":"https://mcp.market/server/thesharque-mcp-architector","rating":null,"grade":"A","score":92,"certified":false,"status":"active","category":"ecommerce","tags":["ecommerce","media"],"presence":{"score":25,"stars":0,"forks":0,"downloads_week":105,"last_push_at":"2026-09-01T16:02:01.000Z","license":"MIT"},"uptime":null,"claimed":false,"transport":"npm","callable_via_gateway":false,"default_price_micros":0,"repository":"https://github.com/theSharque/mcp-architect","website":null,"version":"1.11.0","remotes":[],"packages":[{"registryType":"npm","identifier":"mcp-architector","version":"1.11.0","transport":{"type":"stdio"}}],"tools":[{"name":"delete-entries","description":"Bulk delete entries matching kind/moduleName/tags filter. Requires confirm=true. Use before full re-import or to clear a module slice. Prefer replace-entries with deleteOrphans for idempotent sync.","write_action":true,"price_micros":0,"input_schema":null},{"name":"delete-entry","description":"Removes one entry and updates the index. Use when a fact is obsolete. Do not use to delete modules—use delete-module. Cannot delete slice definitions—use delete-slice.","write_action":true,"price_micros":0,"input_schema":null},{"name":"delete-module","description":"Deletes one module from architecture and its module detail file. Does not delete entries—remove those with delete-entry if needed. Does not delete custom slices.","write_action":true,"price_micros":0,"input_schema":null},{"name":"delete-slice","description":"Deletes a custom slice definition only. Built-in slices (api, domain, …) cannot be deleted. Does not delete entries—use delete-entry.","write_action":true,"price_micros":0,"input_schema":null},{"name":"fix-data","description":"Run when catalog JSON is corrupt (list-modules, get-module-details, or validate fail with extra data after JSON). Rewrites the first valid JSON object in architecture, modules, entries, and slices; removes leftover .tmp files; rebuilds the entry index. Does not delete facts. Optional dryRun previews without writing.","write_action":true,"price_micros":0,"input_schema":null},{"name":"get-entry","description":"Returns one full entry by id. Use after list-entries or search-entries when you need payload and refs. Do not use for a full API list—use get-slice sliceId=api. Do not use for module structure—use get-module-details.","write_action":false,"price_micros":0,"input_schema":null},{"name":"get-import-stats","description":"Returns entry counts grouped by kind, module, and tag. Use after replace-entries/import to verify catalog size.","write_action":false,"price_micros":0,"input_schema":null},{"name":"get-module-details","description":"Returns one module's full detail (files, dependencies, examples). Use when you know the module name from get-project-architecture or list-modules. If module has files but get-slice is empty, add entries with refs.moduleName=this module. For cross-cutting API/domain lists use get-slice. moduleName must match architecture exactly.","write_action":false,"price_micros":0,"input_schema":null},{"name":"get-project-architecture","description":"Returns vertical structure: project description, module list, dataFlow. Use for refactoring boundaries between components. For all HTTP endpoints or domain terms use get-slice—not this tool. For one module's files and examples use get-module-details. projectId is required—call list-projects first.","write_action":false,"price_micros":0,"input_schema":null},{"name":"get-slice","description":"Returns a horizontal project view: filtered entries transformed for agents. Empty slice = no entries with matching kind. Call list-slices first to pick sliceId. format=compact default; table for api/ui slice. Use offset/limit for pagination. Filter further by moduleName or tags.","write_action":false,"price_micros":0,"input_schema":null},{"name":"import-entries","description":"… Alias for replace-entries (mode=replace). Pass filter as scope; send up to … entries per call.","write_action":false,"price_micros":0,"input_schema":null},{"name":"list-entries","description":"Returns the entry catalog (id, kind, title, tags, moduleName)—no payload. Supports kind/moduleName/tags filters and pagination (limit max 200). Unlinked entries lack moduleName; run validate after edits. For typed horizontal views use get-slice.","write_action":false,"price_micros":0,"input_schema":null},{"name":"list-modules","description":"Lists module summaries from architecture (name, description)—vertical structure only. For horizontal facts (endpoints, tables, terms) use list-slices then get-slice. After edits run validate. Use module names in set-entry refs.moduleName.","write_action":false,"price_micros":0,"input_schema":null},{"name":"list-projects","description":"Call first. Lists projects in ~/.mcp-architector with projectId, description, moduleCount, updatedAt, isCurrent, forbidden. Match this workspace by folder name (query). Pass that projectId to every other tool—never omit, never use default-project. isCurrent is only a hint from MCP_PROJECT_ID. If none matches, create with set-project-architecture using a stable id from the workspace path.","write_action":false,"price_micros":0,"input_schema":null},{"name":"list-slices","description":"Lists built-in and custom slice views (filters over entries—not separate stored data). Empty slice = no entries with matching kind, not a missing slice definition. Use before get-slice to pick sliceId (api, domain, persistence, …).","write_action":false,"price_micros":0,"input_schema":null},{"name":"rebuild-data-flow","description":"Rebuilds dataFlow for all modules from module file dependencies or existing dependsOn edges. Recomputes providesTo and optionally syncs module files. Use instead of editing architecture.json directly.","write_action":false,"price_micros":0,"input_schema":null},{"name":"rebuild-entry-index","description":"Rebuilds entries/index.json from entry files on disk. Use when list-entries or get-slice miss entries that exist as files (index drift). Does not modify entry bodies.","write_action":false,"price_micros":0,"input_schema":null},{"name":"refactor-architecture","description":"Preview or apply in-repo refactor sync to architector data (no workspace access). Default dryRun=true. Workflow: (1) scan with file/text to list hits, (2) build 1-3 mutation ops, (3) dryRun preview, (4) apply with dryRun=false and confirm=true. Mutations: move-file, replace-path-prefix, rename-text, patch-entry, merge-files, remove-file-ref. Orphan entries with empty refs.files and no entryIds are","write_action":false,"price_micros":0,"input_schema":null},{"name":"replace-entries","description":"… Idempotent sync for up to … entries in scope; optionally delete orphans not in this batch. Match by upsertBy (default kind+title). For large catalogs use deleteOrphans=false on intermediate batches, true only on the last batch.","write_action":false,"price_micros":0,"input_schema":null},{"name":"search-entries","description":"Compact navigation search over entries by title, summary, kind, and tags. Returns snippet, matchedIn, slices, and moduleName per hit—use get-entry for full payload. Prefer get-slice when you know the category (api, domain). Filters (moduleName, kind, tags) narrow agent context. Default limit 10.","write_action":false,"price_micros":0,"input_schema":null},{"name":"set-entries","description":"… … Set refs.moduleName per entry, or pass top-level moduleName as default. Prefer set-entries in 50-entry chunks over one huge replace-entries payload.","write_action":false,"price_micros":0,"input_schema":null},{"name":"set-entry","description":"… Creates or updates one canonical project fact (entry). Use when you discovered a concrete fact while working. Do not use for module structure—use set-module-details. Do not copy module.description into summary; link via refs.moduleName only. Upsert: pass id to update, or omit id to match by kind+title or create new. Example: kind=http-endpoint, title='POST /orders', summary='Creates order', refs","write_action":false,"price_micros":0,"input_schema":null},{"name":"set-module-data-flow","description":"Patches dataFlow for one module (dependsOn is canonical; providesTo is recomputed). Syncs module file dependencies. Prefer over set-project-architecture for single-module graph edits.","write_action":true,"price_micros":0,"input_schema":null},{"name":"set-module-details","description":"Creates or updates one vertical module (files, dependencies, dataFlow sync). IMPORTANT: Slices (api, domain, persistence) are built from entries, not from module text. When adding or updating a module, also add entries this module owns: pass facts[] (http-endpoint, entity, glossary, …) in this call (max 50 per call), or call set-entry / set-entries in 50-entry batches with refs.moduleName=<module ","write_action":true,"price_micros":0,"input_schema":null},{"name":"set-project-architecture","description":"Creates or updates vertical module structure (components and dataFlow)—not horizontal facts. By default merges modules and dataFlow by name; omit dataFlow to keep existing flow. Use replaceModules or replaceDataFlow for full replace. For one module use set-module-details or set-module-data-flow. For bulk flow rebuild use rebuild-data-flow. Each new module still needs entries—use set-module-details","write_action":true,"price_micros":0,"input_schema":null},{"name":"set-slice","description":"Saves a custom slice definition (filter only—no items). Items always live in entries. Use when built-in slices (api, domain, …) are not enough, e.g. filter kinds godot-scene + tag gameplay. Do not store duplicate entry text here. get-slice reads entries through this filter.","write_action":false,"price_micros":0,"input_schema":null},{"name":"validate","description":"Run after set-project-architecture, set-module-details, set-entry, or set-entries. Returns a compact report (summary, stats, issues by kind)—no need to load the full project in the agent. Checks only known rules: dataFlow consistency, module↔entry links, module detail files, entry index drift, empty api/domain/persistence slices, entry slice coverage, optional module-too-few-entries when moduleEnt","write_action":true,"price_micros":0,"input_schema":null},{"name":"validate-architecture","description":"Alias for validate with the same checks. Prefer validate after edits. Legacy name kept for compatibility.","write_action":false,"price_micros":0,"input_schema":null},{"name":"validate-import","description":"Dry-run validation for a proposed import batch (max … entries). … Checks duplicate upsert keys and unknown moduleName refs without writing.","write_action":false,"price_micros":0,"input_schema":null}],"scan":{"score":92,"grade":"A","scanned_at":"2026-09-20T20:11:17.015Z","report":{"scannerVersion":"0.1.9","scannedAt":"2026-09-20T20:11:16.989Z","components":{"code":{"score":25,"max":25,"notes":["78 source files scanned"]},"reliability":{"score":-1,"max":20,"notes":["no gateway calls yet and no remote to probe"]},"poisoning":{"score":-1,"max":15,"notes":["tools not inspected (local package is not executed); not counted"]},"auth":{"score":12,"max":15,"notes":["local package, no credentials required"]},"maintenance":{"score":15,"max":15,"notes":["last push 19 days ago"]},"identity":{"score":8,"max":10,"notes":["registry namespace matches repository owner","GitHub account older than a year"]}},"findings":[],"inputs":{"packages":[{"registryType":"npm","identifier":"mcp-architector","version":"1.11.0","found":true,"license":"MIT","hasInstallScripts":false,"dependencyCount":3,"publishedAt":"2026-09-01T16:09:10.354Z","repositoryUrl":"git+https://github.com/theSharque/mcp-architect.git","weeklyDownloads":105}],"repo":{"found":true,"owner":"theSharque","repo":"mcp-architect","archived":false,"pushedAt":"2026-09-01T16:02:01Z","stars":0,"forks":0,"openIssues":0,"ownerType":"User","ownerAvatarUrl":"https://avatars.githubusercontent.com/u/6443791?v=4","ownerCreatedAt":"2014-01-19T15:41:16Z"},"icon":{"url":"https://avatars.githubusercontent.com/u/6443791?v=4&s=128","source":"github"},"presence":{"stars":0,"forks":0,"downloadsWeek":105,"license":"MIT","lastPushAt":"2026-09-01T16:02:01.000Z","score":25}}}},"grade_history":[],"reviews":[]}