Jenkins MCP Server
Provides read-only, multi-instance Jenkins access for AI assistants, enabling inspection of jobs, builds, stages, logs, test failures, artifacts, workspaces, nodes, queues, job configurations, config history, SCM usage, and known-issue matching against a local team knowledge base without modifying Jenkins.
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@Jenkins MCP Server why did the latest build of payments-service fail?"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
Jenkins MCP Server
Read-only, multi-instance Jenkins access for AI assistants: VS Code GitHub Copilot (Agent mode) at work, Claude Code for local testing, or any other MCP client. Large build logs are analysed on the server; the model only receives small, relevant excerpts. A team knowledge base remembers solved problems, so the next analysis starts from what the team already knows.
Two ways to run it
Company use | Local testing / development | |
Who | everyone who analyses builds at work | developers of this server |
Platform | Windows | macOS or Windows |
AI client | VS Code GitHub Copilot (Agent mode) | Claude Code (macOS) or VS Code Copilot (Windows) |
Jenkins | your company Jenkins | a test Jenkins in Docker (or any reachable one) |
Setup |
|
|
Step-by-step guide | ||
Client config |
| macOS: registered by the script ( |
The server code is the same in both cases. Day-to-day usage: docs/USER_GUIDE.md.
Related MCP server: hunch
Read-only guarantee
The server cannot change anything in Jenkins:
Its HTTP session (
ReadOnlySessioninsrc/jenkins_mcp/client.py) refuses every method except GET and HEAD before a request leaves the process. A tool that tried to trigger, stop, delete or configure something would fail with "this MCP server is read-only".Credentials are only sent to the configured Jenkins URLs; URLs of other hosts are refused.
Every tool that talks to Jenkins is marked
readOnlyHintfor the AI client. Onlydraft_kb_entryandpropose_kb_updatewrite: one new local file inknowledge/drafts/each time (never overwrites, never Jenkins), so they are honestly marked as local writes.The only other local writes are the log cache (
~/.cache/jenkins-mcp, owner-only permissions).Tested: offline (no non-GET request is ever sent, POST/PUT/PATCH/DELETE blocked) and live against a real Jenkins (all build numbers unchanged after running every tool).
Project layout
jenkins-mcp/
├── src/jenkins_mcp/ SERVER CODE (same on Windows and macOS, installed with pip)
├── config/ YOUR SETTINGS: *.example templates committed; your yaml/.env are git-ignored
├── knowledge/ TEAM DATA: known issues (Markdown); may also live in its own repo
├── docs/USER_GUIDE.md how to use it day to day
│
├── setup/windows/ COMPANY: Windows + VS Code Copilot
│ ├── setup.ps1 install script (-Dev: + test tools, for developers)
│ └── README.md step-by-step guide
├── .vscode/ VS Code: mcp.json = Copilot server (generated, git-ignored; template mcp.example.json),
│ settings.json = pytest
│
└── tests/ LOCAL TESTING / DEVELOPMENT (never installed)
├── README.md step-by-step guide: macOS + Claude Code, Windows + VS Code
├── macos/setup.sh macOS: install + Claude Code registration + offline tests
├── test_*.py offline tests (pytest, fake Jenkins)
├── fixtures/ sample log + example knowledge base for the tests
└── live/ real Jenkins in Docker + live check of every tool (run_live.sh / run_live.ps1)Source package:
src/jenkins_mcp/
├── app.py FastMCP object, server instructions, shared parameter types
├── main.py imports tools + prompts, run() (command: jenkins-mcp)
├── vscode_config.py writes .vscode/mcp.json (token prompts per instance), called by setup.ps1
├── xmlutil.py Jenkins XML 1.1 parsing
├── settings.py paths (JENKINS_MCP_HOME), env tunables
├── config.py config/jenkins_instances.yaml + config/.env -> Settings, validation, instance lookup
├── client.py ReadOnlySession (GET/HEAD only), Instance
├── targets.py job/build/URL resolution
├── text.py secret masking, output budget, formatting
├── rules/ built-in error/ignore/noise rules (YAML)
├── logs/ download + cache, cleaning, stage detection, error grouping
├── kb/ knowledge base: load entries, match against logs
├── tools/ MCP tools: instances, jobs, builds, logs, artifacts, infra, knowledge
└── prompts.py analyse_build, document_sessionConfiguration
Files (templates in config/, your copies are git-ignored):
File | Content |
| Jenkins instances, TLS, log rules, knowledge base folder (template: |
| Credentials, one pair per instance (template: |
Environment variables (set them in config/.env, in the MCP client config, or in the shell):
Variable | Default | Purpose |
| - | Credentials of instance |
| nearest parent of the working dir with | Project folder with |
|
| Instance file |
|
| Knowledge base folder (e.g. a private team repo) |
|
| Log cache (contains raw console logs) |
|
| Cache size limit |
|
| Larger logs keep the first 20 % and the end |
|
| Hard size limit of one tool answer |
|
| Job lists ( |
|
| Server log level (stderr) |
After editing the yaml or .env, call list_instances(reload_config=true); no restart is needed.
Config problems are reported by list_instances under config_errors.
Use a dedicated Jenkins user with read permissions only (Overall/Read, Job/Read) for the API token. The server never writes to Jenkins, but a read-only account limits the damage if a token leaks.
Tools (34)
Tool | Purpose |
| instances, token source, connection check (version, user/groups, admin rights, quiet-down), config errors, knowledge base state; |
| recursive job list with status/folder/name filter; failing jobs show the last green build |
| red/yellow jobs in the last N hours across all instances, with the last green build |
| every build in the last N hours across all instances: result, culprits, long-running builds |
| job details, permalinks, recent builds, parameters, children |
| which jobs build a repository (or load a Shared Library), across instances; any URL spelling |
| start here: result, params, agent, culprits, downstream builds, pending input, stages, failed stage, known issues, root-cause candidates, tail |
| errors and tail of one stage (default: failed stage); |
| what a running build waits for ( |
| de-duplicated error groups, annotated by the knowledge base |
| regex search with context / line windows |
| failed JUnit cases incl. how long they fail |
| what actually ran: Jenkinsfile source, git checkouts, Shared Library versions (hint on LF-version mismatch), replay, slowest steps; |
| good vs bad: agent, params, stages, commits (Jenkinsfile/groovy changes flagged), new errors, errors also in good build, env.log diff; pick builds by node ( |
| config.xml as a summary: SCM, Jenkinsfile path, parameters, triggers, retention, label, build steps, Config File Provider files, credential IDs; |
| content of a Config File Provider file (settings.xml...), secrets masked |
| who changed the job config and when (Job Config History plugin); semantic + XML diff of two versions or against the live config |
| artifact list (sizes, download URL), text artifacts (UTF-8, UTF-16, cp1252), secrets masked |
| artifacts of two builds: added/removed, changed (fingerprint, size, bytes); diff of one text artifact, checksum of a binary |
| files that were not archived, from the job / Pipeline node-block workspace (current state on the agent) |
| agents (labels, disk, memory, offline reason, clock) and queue |
| one node: labels, which build runs on which executor, Java version, config.xml (remote root, launcher, node env vars masked, tool locations) |
| match a build or a pasted error text against the knowledge base |
| read / list entries, with how often each matched since the server started |
| write a new local draft in |
| propose an update of an existing entry (new build, extra regexes) as a new draft next to it (local write) |
| errors across the newest builds of a job: regression ("new since #N") vs. also in green builds |
Prompts: analyse_build, document_session, morning_report (Copilot: type / and pick mcp.jenkins...;
Claude Code: /mcp__jenkins__analyse_build).
All tools are read-only towards Jenkins; see Read-only guarantee.
Knowledge base workflow
Analyse a build.
get_build_summaryshowsknown_issuesif an entry matches.When the cause is found and confirmed, run the prompt
document_session(or ask the agent). It checks for duplicates and callsdraft_kb_entry, orpropose_kb_updatewhen an entry already exists.recurring_errorsfinds red-herring candidates (errors that also occur in green builds).Review the draft in
knowledge/drafts/, move it toknowledge/, commit it to your team's private knowledge repo. The server picks up file changes automatically.
Company knowledge does not belong in this public repository: .gitignore excludes knowledge/KB-*.md and
drafts. Keep entries in a private repo and point JENKINS_MCP_KB_DIR (or knowledge.dir) at its checkout.
Format and field reference: knowledge/README.md. Start new entries from knowledge/TEMPLATE.md.
Development
See tests/README.md. Adding a tool: write a function with
@mcp.tool(annotations=READ_ONLY) in a module under src/jenkins_mcp/tools/ (for a new module also import
it in tools/__init__.py), and add a test to tests/test_tools.py.
Notes and limits
Multibranch branch names containing
/are addressed with%2F(aslist_jobsshows them).Stage line ranges come from console markers; output of parallel branches can interleave (
get_stage_log exact=truereads the stage step by step from wfapi instead).Builds still running are not cached on disk; their log is fetched incrementally (only the new part).
Downstream builds are recognised from the console line
Starting building: <display name> #N. If a job has a custom display name, it cannot be resolved by that name, and the summary says so.Logs larger than
JENKINS_MCP_MAX_LOG_MBkeep the first 20 % and the end.Log content is untrusted: a log line can contain text that looks like an instruction. The server cannot change Jenkins, so such text cannot trigger actions through it.
Security
See SECURITY.md for the threat model and how to report a vulnerability.
License
MIT © 2026 Telman Huseynli
Roadmap
Release 1.1.0: the live Docker test (Jenkins 2.580.1) and a manual Windows / VS Code Copilot run against real instances passed. Set the package status back to
5 - Production/Stable, turnUnreleasedin CHANGELOG.md into1.1.0, tagv1.1.0and publish a GitHub release.Replace the module-level singletons (
config, knowledge base cache, log LRU, job tree cache) with one application context object, and pass log rules intologs/instead of reading the global config there.CI pipeline on Windows: ruff, mypy, pytest.
Read-only plugin tools: installed plugins and versions, plugins with problems (missing dependencies), available updates.
/pluginManager/api/json?depth=1usually needs Overall/SystemRead or Administer: check it with a normal user's token first; without that permission the tools would only return 403.More read tools: views, node env/PATH (system info, needs admin), Jenkinsfile and JCasC history from Git (Bitbucket).
Optional HTTP transport for one shared team server (needs authentication / a gateway).
Human-in-the-loop write actions (not implemented):
plan_*tool -> one-time token -> human confirms ->execute_planwith a separate service account and an allow-list.
Available Tools
34 toolscompare_artifactsCompare ArtifactsARead-onlyIdempotent
Compare the archived artifacts of two builds. Without path: artifacts only in one build, and which common ones changed (by Jenkins fingerprint, else by size, small files byte-wise). With path: a unified diff of a text artifact (secrets masked), or the sha256/size of a binary one.
Inputs: job (required), bad, good, path, +1 more. Returns: object
compare_buildsCompare BuildsARead-onlyIdempotent
What changed between a good and a bad build: result, duration, agent node, parameters, stage status/durations, commits in between (pipeline_changes = commits touching a Jenkinsfile or *.groovy), error groups that are new in the bad build, and env.log differences (if both builds archived env.log). Ideal for 'it worked yesterday', 'why is node A slower than node B' and for checking whether an error also occurs in green builds. good_on_node / bad_on_node pick builds by agent ('works on agent-01, fails on agent-03'; Pipeline jobs need up to 10 log reads); other_instance compares the same job across instances (no commit range).
Inputs: job (required), bad, good, instance, +3 more. Returns: object
diff_job_configDiff Job ConfigARead-onlyIdempotent
What changed between two configuration versions of a job: a semantic list ('triggers: cron: H 3 * * * -> cron: H 2 * * *', parameters, SCM, script path, retention...) plus a unified diff of the XML. Secrets are masked in both. Default: the newest version against the one before it.
Inputs: job (required), newer, older, instance. Returns: object
draft_kb_entryDraft Kb EntryA
Write a NEW knowledge base draft (Markdown) to knowledge/drafts/ for human review. Call this at the end of a debugging session once the user confirmed the root cause. It never touches Jenkins and never overwrites a file. Drafts are not used for matching until a human reviews them and moves them into knowledge/ (then commit to Git).
Inputs: match (required), title (required), root_cause (required), job, +11 more. Returns: object
failures_overviewFailures OverviewARead-onlyIdempotent
Jobs whose LAST build failed (and optionally is unstable) within the last hours,
across one or all instances in parallel. Good for a morning check or 'what is red right now'.
Inputs: hours, folder, instance, include_unstable, +1 more. Returns: object
find_jobs_by_scmFind Jobs By ScmARead-onlyIdempotent
Jobs whose last build checked out a repository (app repo or Shared Library), across instances: 'job | STATUS #n | repo URL'. URL spellings are normalized (https / ssh / port / Bitbucket /scm/ / .git). ~1 request per instance. Jobs that were never built cannot be found this way.
Inputs: url (required), folder, instance. Returns: object
find_known_issuesFind Known IssuesARead-onlyIdempotent
Look up the team knowledge base. With job (+build) the build log is matched against every entry in scope (instance/job); with text, a pasted error message is matched. Returns matching entries with the first matching log line and the documented fix. get_build_summary already does this automatically - use this tool for a pasted error or before writing a new entry.
Inputs: job, text, build, instance, +1 more. Returns: object
get_build_summaryGet Build SummaryARead-onlyIdempotent
START HERE for any build question. Compact summary of one build: result, duration,
trigger, parameters, agent node, commits, culprits (failed builds), downstream builds started by the
build step (with their result), pending input steps (running builds), stages (with failed stage and its error),
test counts, log size, known issues from the team knowledge base, likely root-cause
error lines with line numbers, and the last meaningful log lines.
Typical size: 1-3k tokens even for 30k+ line logs.
Inputs: job (required), build, instance. Returns: object
get_env_logGet Env LogARead-onlyIdempotent
The env.log artifact (environment variables dumped by the pipeline) of a build, with
secret-looking values masked. Optional regex pattern filters the lines (e.g. 'JAVA|MAVEN|NODE').
Inputs: job (required), build, pattern, instance. Returns: result
get_jobGet JobARead-onlyIdempotent
Job details: type, health, permalinks (last/lastFailed/lastSuccessful build numbers), recent builds, parameters it accepts, and children if it is a folder/multibranch project.
Inputs: job (required), instance, recent_builds. Returns: object
get_job_configGet Job ConfigARead-onlyIdempotent
A job's (or folder's) configuration from config.xml as a compact summary: type, SCM repo/branches, Jenkinsfile path or inline script, parameters, triggers (cron, SCM polling, upstream), build retention, concurrency, label, freestyle build steps, Config File Provider files (managed_files), folder Shared Libraries and the credential IDs used (IDs only, never values). Needs Job/ExtendedRead. Jobs managed by JCasC/JobDSL: this is the live state; the source of truth is in Git.
Inputs: job (required), raw, instance. Returns: object
get_job_config_historyGet Job Config HistoryARead-onlyIdempotent
Who changed a job's configuration and when (Job Config History plugin), newest first: 'timestamp | operation | user'. Use the timestamps with diff_job_config. Changes by SYSTEM usually come from JCasC / JobDSL seed jobs: then the source of truth is Git and UI changes get overwritten.
Inputs: job (required), limit, instance. Returns: object
get_known_issueGet Known IssueARead-onlyIdempotent
Full text of one knowledge base entry: scope, symptoms, root cause, fix, how it was found, red herrings. Content is written by the team (reviewed) - drafts are marked as unreviewed.
Inputs: id (required). Returns: result
get_log_errorsGet Log ErrorsARead-onlyIdempotent
All detected error lines of a build, de-duplicated into groups (same message = one group with a count), in order of first appearance, with line number, stage, severity and a shortened stack trace. Severity 'warn' = error text inside a line logged as WARN (often retries, rarely the cause); category 'generic' = an 'Error:'/'FATAL:' line no specific rule knows (ranked after specific errors). Groups the knowledge base knows are annotated ('known issue', 'known noise', 'consequence of'). Generic Jenkins wrapper messages ('script returned exit code 1') are hidden unless include_generic.
Inputs: job (required), build, category, instance, +2 more. Returns: result
get_log_linesGet Log LinesCRead-onlyIdempotent
A window of the cleaned console log with line numbers (max 400 lines per call). Use line numbers from the other tools. hide_noise drops [Pipeline]/download/progress lines.
Inputs: job (required), build, count, start, +2 more. Returns: result
get_nodeGet NodeARead-onlyIdempotent
One node in detail. Live: online/offline (reason), labels, every executor with the build running on it, Java version (if a monitor exposes it), disk/memory/clock. Configuration (config.xml): remote root, mode (any job / matching labels only), launch method (e.g. SSH host), node environment variables (secrets masked) and tool locations. Without Computer/ExtendedRead permission only the live part is shown.
Inputs: name (required), instance. Returns: object
get_pending_inputsGet Pending InputsARead-onlyIdempotent
What a running Pipeline build is waiting for (input steps): message, id, button, requested inputs
and who may approve. Read only - approving or aborting stays a human action in the Jenkins UI.
Inputs: job (required), build, instance. Returns: object
get_pipeline_infoGet Pipeline InfoARead-onlyIdempotent
What actually ran in a Pipeline build: where the Jenkinsfile came from, the git checkouts (repo, branch, commit), the Shared Library versions that were loaded (with a hint when a library branch does not match a VERSION parameter, e.g. rel-2.3 vs REL_VERSION=2.4), replay / restart-from-stage, and the slowest steps, and the Config File Provider files it provisioned. show_script=True adds the executed script (needs the Run/Replay permission).
Inputs: job (required), build, instance, show_script. Returns: object
get_queueGet QueueARead-onlyIdempotent
Build queue: what is waiting, for how long, and why (e.g. 'Waiting for next available executor on label X'). Stuck items are flagged. Useful when builds 'hang' before starting.
Inputs: limit, instance. Returns: object
get_stage_logGet Stage LogARead-onlyIdempotent
Errors and the last meaningful lines of ONE pipeline stage (default: the failed stage). Much cheaper than the full log. Lines of parallel branches can interleave in the console; exact=True reads the stage step by step from wfapi instead (falls back to the console without the plugin).
Inputs: job (required), build, exact, stage, +2 more. Returns: result
get_test_failuresGet Test FailuresARead-onlyIdempotent
Failed test cases from the JUnit test report (not the log): class, test, error message, shortened stack, and 'age' = number of consecutive builds this test has been failing.
Inputs: job (required), build, instance, max_cases. Returns: object
list_artifactsList ArtifactsARead-onlyIdempotent
Archived artifacts of a build (relative paths, optionally with sizes) and the download base URL. Read text artifacts with read_artifact; binaries (jar, zip, pdf, xlsx...) are never sent to the model - use the download URL.
Inputs: job (required), build, limit, sizes, +1 more. Returns: object
list_instancesList InstancesARead-onlyIdempotent
List configured Jenkins instances (name, url, description, default, where the token comes from). check_connection=True also pings each instance and reports the Jenkins version or the error, the token's user and groups, whether it has admin rights, and quiet-down (shutdown) mode. reload_config=True re-reads config/jenkins_instances.yaml and config/.env without restarting the server. Also reports configuration problems and the state of the knowledge base.
Inputs: reload_config, check_connection. Returns: object
list_jobsList JobsARead-onlyIdempotent
List jobs recursively (folders and multibranch projects are expanded). folder: start below this folder, e.g. 'cd' or 'release'. Empty = whole instance. status: comma list filter on the last build: SUCCESS, FAILURE, UNSTABLE, ABORTED, NOT_BUILT, BUILDING, DISABLED. name_contains: case-insensitive substring filter on the full job name. Each row: 'full/job/name | STATUS #lastBuild | age'. Uses few API calls (no per-job requests).
Inputs: limit, folder, status, instance, +1 more. Returns: object
list_known_issuesList Known IssuesBRead-onlyIdempotent
List knowledge base entries: 'id | status | category | scope | title', plus how many builds each entry matched since the server started. query = case-insensitive text filter on title and content.
Inputs: query, category, instance, include_drafts. Returns: object
list_workspaceList WorkspaceARead-onlyIdempotent
Files in a job's workspace (folders end with '/'), for files that were not archived (e.g. app-queue.log).
Pipeline: the workspace of a node block of the build; with several blocks it lists them first.
Shows the CURRENT state on the agent. Needs the Job/Workspace permission and a reachable agent.
Inputs: job (required), path, build, node_id, +1 more. Returns: object
node_healthNode HealthARead-onlyIdempotent
Controller and agent status: online/offline (with reason), labels, executors, idle, free disk and temp space, free memory/swap, response time, clock drift, plus warnings. Static agents only; ephemeral Kubernetes agents appear only while they exist. Details of one node: get_node.
Inputs: instance, only_problems. Returns: object
propose_kb_updatePropose Kb UpdateA
Propose an update of an EXISTING knowledge base entry instead of writing a duplicate: writes a NEW
draft next to it in knowledge/drafts/ with the build URL added to builds, the extra regexes merged in
and an 'Update proposal' section. Never touches the entry itself or Jenkins, never overwrites a file.
Reports whether the entry matches the given build.
Inputs: id (required), job, note, build, +4 more. Returns: object
read_artifactRead ArtifactARead-onlyIdempotent
Read a text artifact (reports, logs, yaml, json...). With pattern it greps (regex, case-insensitive,
1 line context, max 50 matches); otherwise returns count lines from start (0 = tail). Secrets are masked.
UTF-8, UTF-16 (with BOM) and cp1252 files are decoded; binary files are refused.
Inputs: job (required), path (required), build, count, +3 more. Returns: result
read_managed_fileRead Managed FileARead-onlyIdempotent
Content of a Config File Provider managed file (settings.xml, .npmrc, properties...) with secrets masked. Global files by default; pass folder= for files defined in a folder.
Inputs: id (required), folder, instance. Returns: result
read_workspace_fileRead Workspace FileARead-onlyIdempotent
Read a text file from a job's workspace (e.g. a log the build did not archive). With pattern it
greps (regex, case-insensitive); otherwise count lines from start (0 = tail). UTF-8, UTF-16 and
cp1252 are decoded, binary files refused, secrets masked. Shows the CURRENT file on the agent.
Inputs: job (required), path (required), build, count, +4 more. Returns: result
recent_buildsRecent BuildsARead-onlyIdempotent
Every build (not only the last one per job) started in the last hours, across one or all
instances in parallel, newest first: 'job #n RESULT duration age | culprits | long-running note'.
Counts per result. Uses ~1 request per instance (up to 10 newest builds per job are checked).
Good for 'what ran/failed today', a morning check or a stand-up.
Inputs: hours, folder, status, instance, +1 more. Returns: object
recurring_errorsRecurring ErrorsARead-onlyIdempotent
Error groups across the newest finished builds of one job (max 20): in how many failed and green builds each occurs, first/last build, and a verdict - 'new since #N' (regression) or 'also in green builds' (red_herring candidate for the knowledge base). Knowledge base notes are attached. Cost: one log per build (cached afterwards).
Inputs: job (required), last_n, instance. Returns: object
search_logSearch LogARead-onlyIdempotent
grep -C for a build log: matching lines with context lines around them and line numbers.
Optionally restricted to one stage. Reports the total number of matches even if only
max_matches are shown.
Inputs: job (required), pattern (required), build, stage, +4 more. Returns: result
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
Loading tool schema changelog…
TDQS
Scored across 34 tools
Purpose clusters (log inspection, artifacts, jobs, nodes, knowledge base) are well delineated and descriptions give explicit guidance like 'START HERE' and 'use this instead'. The main risk is the dense family of log tools (get_build_summary, get_log_errors, get_stage_log, search_log, get_log_lines, recurring_errors) where boundaries are clear only after reading the full descriptions.
Mostly verb_noun snake_case (get_build_summary, list_jobs, compare_builds, read_artifact, find_known_issues). A handful drop the verb (node_health, failures_overview, recent_builds, recurring_errors), which is a minor but noticeable deviation from the otherwise predictable pattern.
34 tools is heavy, well above the comfortable 3-15 range. The Jenkins debugging domain is genuinely broad (logs, artifacts, jobs, config, nodes, queue, KB, workspace) and most tools earn their place, but the surface is large enough to burden tool selection.
Coverage is unusually thorough across builds, logs, artifacts, test failures, job/node/queue state, config history and diffing, knowledge base lifecycle, and workspace reads. The only apparent gap is write/action operations (triggering, aborting, approving inputs), which seem intentionally excluded as a safety choice and are explained as such.
Maintenance
Related MCP Connectors
Read-only AI coding tools for change verification, release readiness, capacity, and guidance.
Your AI's work, reviewed by your team, remembered - shared artifacts with review, plus team memory.
Gives your AI assistant persistent memory and intelligence about your work patterns.
Shared memory for teams: every AI agent works from your company's knowledge, decisions and history.
Related MCP Servers
- AlicenseBqualityCmaintenanceProvides AI assistants with persistent memory of your project architecture, development history, and technical decisions, allowing them to give context-aware coding help without needing repeated explanations.1661 npm2MIT
- AlicenseNot gradedqualityAmaintenanceEnables AI coding agents to access evidence-backed repository memory, code graph, project DNA, and deterministic change validation so they understand design decisions, past bugs, and invariants while working.983 npm16Functional Source , Version 1.1, ALv2 Future
- AlicenseNot gradedqualityAmaintenanceEnables AI agents to analyze, cluster, compare, and export reports from local log files through seven read-only tools, returning compact evidence packs with line-number citations instead of raw log dumps. All processing happens on the local machine, so log data never leaves the environment.63 PyPI1MIT
- AlicenseBqualityCmaintenanceEnables AI assistants to query application projects directly for logs, metrics, incidents, and semantic search through read-only tools.1746 npm1MIT