{"name":"io.github.abeljumanuel/axiom-meridian","slug":"abeljumanuel-axiom-meridian","title":"Axiom Meridian","description":"Serves only the team rules and lessons learned relevant to a project. Code drifts. Meridian doesn't.","url":"https://mcp.market/server/abeljumanuel-axiom-meridian","rating":null,"grade":"A","score":92,"certified":false,"status":"active","category":"other","tags":[],"presence":{"score":18,"stars":0,"forks":0,"downloads_week":null,"last_push_at":"2026-10-15T07:10:16.000Z","license":"Apache-2.0"},"uptime":null,"claimed":false,"transport":"pypi","callable_via_gateway":false,"default_price_micros":0,"repository":"https://github.com/abeljumanuel/axiom-meridian-project","website":"https://github.com/abeljumanuel/axiom-meridian-project","version":"0.1.0","remotes":[],"packages":[{"registryType":"pypi","registryBaseUrl":"https://pypi.org","identifier":"axiom-meridian","version":"0.1.0","runtimeHint":"uvx","transport":{"type":"stdio"},"environmentVariables":[{"description":"Knowledge base root (Markdown files + SQLite index). Defaults to an OS-specific per-user data directory.","name":"KNOWLEDGE_BASE_PATH"},{"description":"Which tools may run: read, analyze, or write (write is needed to approve proposals).","default":"analyze","choices":["read","analyze","write"],"name":"MERIDIAN_ACCESS_LEVEL"}]}],"tools":[{"name":"analyze_pr_feedback","description":"Link PR review feedback to the most recent audit_pr record for the same pr_ref/project_id, returning the rules that applied at that time for the calling LLM to classify each feedback point.","write_action":false,"price_micros":0,"input_schema":null},{"name":"approve_proposal","description":"Approve a pending proposal. For type='rule'/'lesson' this assigns a new RN-/LL- code, appends the atomic block to the scope's .md file, and inserts the corresponding row; for type='update' it splices the target's existing block in place instead. This is the single choke point that writes proposal content into both the .md file and SQLite together.","write_action":false,"price_micros":0,"input_schema":null},{"name":"audit_pr","description":"Audit a PR diff against a project's active rules and lessons (detail=\"full\"): persists an audit record (SHA-256 diff hash + a snapshot of the rule versions evaluated) and returns the diff plus rules/lessons for the calling LLM to classify.","write_action":false,"price_micros":0,"input_schema":null},{"name":"check_feature_against_rules","description":"Check a planned feature description against a project's active rules and lessons (detail=\"full\"); persists a planning_checks record and returns the context for the calling LLM to flag conflicts.","write_action":false,"price_micros":0,"input_schema":null},{"name":"convert_to_atomic_format","description":"Convert a legacy markdown file into atomic-format pending_proposals, one per legacy block, with best-effort scope inference from each block's text. Never writes .md files directly — always stages for human review via `approve_proposal`.","write_action":false,"price_micros":0,"input_schema":null},{"name":"create_pending_proposal","description":"Validate and persist a pending proposal of type 'rule', 'lesson', or 'update' (private tags stripped from proposed_text). For type='update', target_id must reference an existing RN-*/LL-* id and the proposal inherits that target's scope_id. Does not write to rules/lessons or any .md file — approve_proposal does that after human review.","write_action":true,"price_micros":0,"input_schema":null},{"name":"create_project","description":"Create a new project scope and its knowledge base directories: a 'project-<id>' scope under parent_scope, plus knowledge-base/projects/ and lessons/projects/ directories with a placeholder rules .md file.","write_action":true,"price_micros":0,"input_schema":null},{"name":"deprecate_rule","description":"Create a proposal to deprecate a rule or lesson on its own, without changing its scope (unlike promote_rule). Accepts both RN-* and LL-* ids. Only creates a pending_proposals row (type='deprecate') — no immediate effect; approve_proposal performs the actual deprecation after human review.","write_action":true,"price_micros":0,"input_schema":null},{"name":"edit_proposal","description":"Update the proposed_text and/or metadata of a still-pending proposal; its status stays 'pending'.","write_action":true,"price_micros":0,"input_schema":null},{"name":"extract_lessons_from_transcript","description":"Return everything the calling LLM needs to extract candidate lessons from a transcript: the clean text, the project's scope chain with attributes, existing lessons for duplicate detection, and the canonical lesson template. Does not itself create any proposal — call create_pending_proposal per candidate.","write_action":false,"price_micros":0,"input_schema":null},{"name":"extract_rules_from_transcript","description":"Return everything the calling LLM needs to extract candidate rules from a transcript: the clean text, the project's scope chain with attributes, existing rules for duplicate detection, and the canonical rule template. Does not itself create any proposal — call create_pending_proposal per candidate.","write_action":false,"price_micros":0,"input_schema":null},{"name":"generate_embeddings","description":"Generate or update ChromaDB embeddings for active rules/lessons whose embedding_id is still NULL — an incremental backfill, not a full re-embed.","write_action":false,"price_micros":0,"input_schema":null},{"name":"generate_project_skills","description":"Generate a Claude Code skill for a project from its resolved rules: writes .claude/skills/meridian/<project_id>/SKILL.md and references/rules.md under project_path, and updates its AGENTS.md.","write_action":false,"price_micros":0,"input_schema":null},{"name":"get_lesson_template","description":"Return the canonical `## LL-XXX-NNN` atomic block template, its field descriptions, and usage instructions.","write_action":false,"price_micros":0,"input_schema":null},{"name":"get_project_scope_resolution","description":"Resolve and cache a project's effective scope chain (most-specific first) with each scope's dynamic attributes (ADR-002).","write_action":false,"price_micros":0,"input_schema":null},{"name":"get_rule_audit_log","description":"Return the chronology of rule_history changes for a project or scope, plus any rules currently deprecated in that scope.","write_action":false,"price_micros":0,"input_schema":null},{"name":"get_rule_context","description":"Return a rule's full text, its complete rule_history, and any lessons linked to it.","write_action":false,"price_micros":0,"input_schema":null},{"name":"get_rule_template","description":"Return the canonical `## RN-XXX-NNN` atomic block template, its field descriptions, and usage instructions.","write_action":false,"price_micros":0,"input_schema":null},{"name":"get_rule_timeline","description":"Return a rule's chronological history and linked-lesson summary without loading full text — lighter than get_rule_context.","write_action":false,"price_micros":0,"input_schema":null},{"name":"get_server_info","description":"Report this running server process's version/commit, and whether the code on disk has changed since this process started — Python doesn't hot-reload, so an editable install that was `git pull`ed without restarting the server keeps serving the old code with no other visible sign of it (Hallazgo 7).","write_action":false,"price_micros":0,"input_schema":null},{"name":"get_transcription_template","description":"Return the combined rule+lesson template guide and workflow instructions for turning a transcript into pending proposals.","write_action":false,"price_micros":0,"input_schema":null},{"name":"index_lessons_from_markdown","description":"Index lessons from a markdown file directly into SQLite.","write_action":false,"price_micros":0,"input_schema":null},{"name":"index_rules_from_markdown","description":"Index rules from a markdown file directly into SQLite.","write_action":false,"price_micros":0,"input_schema":null},{"name":"list_pending_proposals","description":"List pending proposals for human review, optionally filtered by project, type, or status.","write_action":false,"price_micros":0,"input_schema":null},{"name":"promote_rule","description":"Promote a rule to a more general scope: marks the original as deprecated (in both SQLite and its source .md file) and records a PROMOTED rule_history entry. Does not create the rule in the new scope — that requires a separate proposal.","write_action":false,"price_micros":0,"input_schema":null},{"name":"query_lessons","description":"Query active lessons visible to a project across its full scope hierarchy (most-specific scope first), via plain SQL filtering or — when query_text is set and embeddings exist — semantic search.","write_action":false,"price_micros":0,"input_schema":null},{"name":"query_rules","description":"Query active rules visible to a project across its full scope hierarchy (most-specific scope first), via plain SQL filtering or — when query_text is set and embeddings exist — semantic search.","write_action":false,"price_micros":0,"input_schema":null},{"name":"reject_proposal","description":"Reject a pending proposal. No side effects besides updating the record.","write_action":false,"price_micros":0,"input_schema":null}],"scan":{"score":92,"grade":"A","scanned_at":"2026-10-15T11:58:16.145Z","report":{"scannerVersion":"0.1.10","scannedAt":"2026-10-15T11:58:16.069Z","components":{"code":{"score":25,"max":25,"notes":["33 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 0 days ago"]},"identity":{"score":8,"max":10,"notes":["registry namespace matches repository owner","GitHub account older than a year"]}},"findings":[],"inputs":{"packages":[{"registryType":"pypi","identifier":"axiom-meridian","version":"0.1.0","found":true,"license":"Apache-2.0","dependencyCount":8,"publishedAt":"2026-10-15T05:58:53.713835Z","repositoryUrl":"https://github.com/abeljumanuel/axiom-meridian-project"}],"repo":{"found":true,"owner":"abeljumanuel","repo":"axiom-meridian-project","archived":false,"pushedAt":"2026-10-15T07:10:16Z","stars":0,"forks":0,"openIssues":0,"ownerType":"User","ownerAvatarUrl":"https://avatars.githubusercontent.com/u/12539100?v=4","ownerCreatedAt":"2015-05-21T04:06:02Z","license":"Apache-2.0"},"icon":{"url":"https://avatars.githubusercontent.com/u/12539100?v=4&s=128","source":"github"},"presence":{"stars":0,"forks":0,"downloadsWeek":null,"license":"Apache-2.0","lastPushAt":"2026-10-15T07:10:16.000Z","score":18}}}},"grade_history":[],"reviews":[]}