Context7
Up-to-date docs for AI agents
제작자가 쓴 설명(영어 원문)
Review-gated declarative long-term memory with bounded read-only MCP access.
이 세 가지는 절대 하나의 점수로 합치지 않아요. 의견, 측정, 인기는 서로 다른 것이니까요.
이 서버는 아직 쉬운 말로 된 요약을 쓰지 못했어요. 아래는 레지스트리에서 읽어 온 사실이에요.
쓰고 있는 AI 앱을 고른 다음 설정을 복사하세요.
어떤 앱을 쓰세요?
위에서 앱을 고르세요. 기억해 두었다가 다음부터는 버튼에 “…에 설치”라고 표시해요.
링크는 제작자의 파일로 바로 연결돼요. 우리가 보관하거나 다시 패키징하지 않아요. 파일을 열면 Claude Desktop이 설치해요.
터미널에서 이 명령어를 실행하세요
브라우저가 앱을 열지 물어본 다음, 앱이 설정을 보여 주고 확인을 요청해요. 키 값은 비워 두니 직접 입력하세요.
브라우저가 앱을 열지 물어본 다음, 앱이 설정을 보여 주고 확인을 요청해요. 키 값은 비워 두니 직접 입력하세요.
이 서버는 내 컴퓨터에서 실행되는데, ChatGPT는 인터넷에 있는 서버에만 연결할 수 있어요. 다른 앱을 고르세요.
선택한 앱은 이 기기의 쿠키에만 저장돼요. 계정은 필요 없어요.
이 설정은 제작자의 레지스트리 정보로 만들었어요. README와 다르면 README를 따르세요.
내 컴퓨터에서 실행돼요. 설치하면 AI 앱에 도구 목록이 나타나요.
누구나 볼 수 있는 정보를 점검했고, 코드는 읽지 않았어요. 해당하지 않는 항목은 개수에서 뺐어요. · 2026년 11월 7일 점검
레지스트리 이름이 GitHub 계정 Liyuan1992 기준으로 확인되었고, 이 계정이 저장소를 소유하고 있어요
아직 GitHub에서 이 저장소를 읽어 오지 않았어요
아직 GitHub에서 이 저장소를 읽어 오지 않았어요
내 컴퓨터에서 실행되는 서버라 인터넷 엔드포인트가 없어요
내 컴퓨터에서 실행되며, 대신 로컬 설정을 사용해요
내 컴퓨터에서 실행돼요. 도구 목록은 인터넷 엔드포인트가 있는 서버에서만 읽을 수 있어요
레지스트리에서 이 카테고리의 활성 서버 전체와 비교했어요. 스타는 게시자가 저장소를 소유한 경우에만 세요.
해당하는 기본 점검 1개 중 1개를 통과했어요. 코드는 읽지 않았어요. 키나 토큰을 넣기 전에 서버가 어떤 권한을 요구하는지 확인하고, 꼭 필요한 권한만 있는 키를 쓰세요.
레지스트리에 필수 키가 나와 있지 않아요. 다만 처음 쓸 때 로그인을 요구하는 서버도 있어요.
내 컴퓨터에서 실행돼요. AI 앱이 필요할 때 실행하고, 데이터는 제작자의 서버를 거치지 않아요(서버 자체가 온라인 서비스를 호출하는 경우는 제외).
GitHub 저장소는 마지막으로 – 변경됐고, 최신 버전(0.9.2)은 2개월 전 레지스트리에 올라왔어요.
Claude Desktop, Claude Code, Cursor, VS Code처럼 MCP를 지원하는 앱에서 쓸 수 있어요. 내 컴퓨터에 MCPB도 있어야 해요.
같은 카테고리에는: Context7, Codebase Memory, Exa
같은 카테고리에서 다른 제작자가 만든 서버예요. 스타 순으로 정렬했어요.
카드 보는 법:★ GitHub 스타i세 기둥: 리뷰 · 점검 · 사용 정도i업데이트 = 최신 버전을 레지스트리에 공개한 날i
Up-to-date docs for AI agents
Codebase knowledge graph for AI agents — 162 languages, sub-ms queries, 99% fewer tokens.
Connect AI agents to Exa for web search, content fetching, and multi-step research.
제작자의 저장소에서 쓰인 그대로 가져왔어요. PopNx MCP가 검토하거나 보증한 내용이 아니에요. HTML, 이미지, 스크립트는 제거했어요. 링크를 누르면 이 사이트를 벗어나요.
English | 中文
Agent memory as source code the agent reads itself.
Version 0.9.0 adds an opt-in memdsl.workspace.v3 first-class explicit Edge experiment. It does not rewrite the frozen 0.8 contract: legacy relations and authority remain compatible, explicit Edge proposals always require a human, and explicit supersedes is graph-only. Source remains runtime authority; review/audit is a workflow contract, not a non-bypassable grant ledger. See the Phase 6 design and risk matrix and the release-scope evidence freeze.
The 0.8 contract combines the previously unpublished navigation and View work now shipped by 0.9.0; neither 0.7.0 nor 0.8.0 was released separately. Stable public contracts include the v1 compatibility/authority surfaces, Catalog v1, Trace v1, indexed query/search trace, report diagnostics, public rebuildable CompiledWorkspace / compile_workspace, memdsl.workspace.v2, exact use, the generic dialect_mapping capability, ViewContext/ResolvedView, and the explicit opt-in v2 read schemas. Map v1 remains supported throughout the 0.8 line and will not be reconsidered for removal before 1.0.
The software release is 0.9.2, anchored by tag v0.9.2. It adds official MCP Registry metadata and a UV-based MCPB installer for the default-read-only memdsl-mcp server. Parser, schema, review, query, authority, and MCP tool contracts are unchanged from 0.9.1. Neither patch nor package-level release promotes the opt-in Edge surface to stable or makes automatic Edge generation authoritative.
The real-world rollout quality of quarantine/strict, dialect-candidate learning, and host-attested principal integration is still experimental and opt-in. Their safety invariants are not experimental: authorization happens before aggregation, incomplete hard-rule evaluation never becomes ALLOW, non-authoritative edges never gain authority, and repair paths remain open. CompiledWorkspace is a public rebuildable handle; its cache/index layout, compiler contract strings, and synthetic timing constants remain implementation details. Workspace-v3 first-class Edges are experimental. Automatic dialect learning, automatic Edge candidates, inferred authority, and cold-history/ incremental compilation are not shipped. Host extraction/sanitization and private schemas/policies/samples remain outside memdsl and are not release gates.
memdsl started with a retrieval failure. A memory system built on RAG failed to recall a memory it certainly had; a coding agent pointed at the same raw memory files traced it down in a few steps. Same model — the difference was the context contract. The agent knew the memory existed and could keep reading toward it; the retriever got exactly one similarity guess, and a miss looked identical to absence.
memdsl turns that difference into the product. Long-term memory lives in readable, lintable, reviewable .mem source files, and every runtime surface is built for an agent that reads memory itself:
memdsl catalog, MCP memory_catalog / memdsl://catalog, Python build_memory_catalog): paged module/type/subject/ status navigation with item and byte budgets, revision-bound cursors, and no duplicated structured/text representation. It is the recommended session-start surface for large workspaces.memdsl map, MCP memory_map / memdsl://map): the existing v1 full index remains available for older clients and is not silently changed into Catalog.search_trace in every serialized pack): deterministic lexical postings preserve the v1 EvidencePack ordering and authority lanes while exposing View/source identity, candidate-pool counts, filter-hidden matches, bounded vocabulary suggestions, and safe retry queries. Suggestions never write aliases or let candidate symbols redirect retrieval.memdsl trace, MCP memory_trace, Python trace_memory): deterministic incoming/outgoing/both BFS navigation with relation filters, explicit cycle/back/cross edges, hard depth/node/edge/byte budgets, and revision-bound cursors. Connectivity is navigation, not proof.memdsl lint, MCP memory_lint and memdsl://status): duplicate ids, ambiguous/wrong-prefix/dangling targets, unknown relations, revision cycles, and supersede forks are explicit. Cycle edges cannot make every participant disappear, forks never select a winner, and default Map/query authority remains v1-compatible.memdsl://file/{file_id}): the agent can always drop down and read the actual declarations, the way a coding agent reads code.The failure mode that started the project now fails loud — the memory exists, a filter hid it, and the trace says exactly that:
$ memdsl query examples/domains/coding -q "force push main" \
--type coding.bug_pattern --json "missing": [ "no active declarations matched query terms: ['force', 'push', 'main']", "1 active declaration(s) matched the query but were excluded by type/subject filters" ], "search_trace": { "excluded_by_filters": [ {"id": "coding.project_rule:git.no_force_push", ...} ], ... }
$ memdsl query examples/domains/coding -q "force push main" MUST
The core library and CLI support Python 3.9+. The MCP extra and memdsl-mcp server require Python 3.10+ because the upstream MCP SDK does.
# Python 3.10+
pip install "memdsl[mcp]" claude mcp add memdsl -- memdsl-mcp --workspace ~/memory # or an examples/ dir
The server instructs the agent to read memory_catalog first, continue only with a cursor bound to the same Source/View and filters, treat no_match as a retry signal, use memory_trace only for bounded explicit-relation navigation, and preflight consequential drafts against MUST constraints with memory_check. Legacy memory_map remains registered for compatible clients.
DeepSeek Harness can mount the same stdio MCP server through its official MCP client. The recommended overlay grants only read:summary,read:search, so the model can catalog, query, trace, explain, and check approved source memory but cannot create proposals. See the tested overlay and verification steps in the DeepSeek Harness integration guide.
The second pillar: memory you can review like code, without forcing one author's ontology on every user. Version 0.8 preserves the two-layer type architecture introduced in 0.5 and the lifecycle-safe review contract from 0.6, then adds bounded compiled navigation and explicit workspace-v2 Views:
core memory record claim / evidence / scope / confidence / lifecycle /
access policy / relations
domain type system coding.project_rule / assistant.commitment / writing.voice_preference / your own memory types
The core owns the stable behavioral contract. A workspace owns its vocabulary. A coding agent, personal assistant, and writing system should not have to call the same thing a preference, boundary, or fact just because memdsl's author chose those words.
The core layer provides universal fields and five stable runtime roles:
| Runtime role | EvidencePack behavior |
|---|---|
symbol | Defines a subject that other memories can reference |
constraint | Active declarations surface in MUST and participate in compliance |
guidance | Active declarations surface in SHOULD |
assertion | Active declarations surface in CONTEXT when relevant |
question | Active declarations surface in MISSING rather than as fact |
Every searchable non-active hit is isolated under PROVISIONAL, regardless of runtime role. Candidate symbols cannot redirect queries, and candidate constraints cannot enter MUST or compliance.
The same authority boundary applies to relations. A supersedes relation can hide a target only when its source is active and its full-id or unique bare target resolves exactly. Candidate, retracted, archived, ambiguous, duplicate, or wrongly prefixed superseders cannot change query, MUST, or compliance. This is the v1 compatibility authority rule retained by 0.8. The opt-in ResolvedView path uses the same fail-safe base and adds only explicit v2 quarantine enforcement.
The core also understands capabilities such as requires_evidence, searchable, temporal, enforceable, guardable, exceptions_recommended, and the explicit review opt-in auto_approvable.
The domain layer defines meaningful memory types and compiles each one to a runtime role. The shipped examples include:
coding.project_rule, coding.bug_pattern, coding.tool_preferenceassistant.routine, assistant.commitment, assistant.relationship_contextwriting.voice_preference, writing.taboo_topic, writing.style_exampleThe built-in memdsl.standard@1 pack keeps existing entity, fact, preference, boundary, principle, decision, state, and open_issue workspaces working. Those names are compatibility defaults, not the universal ontology of human memory.
A workspace opts into schemas with memdsl.json:
{
"schema_version": "memdsl.workspace.v1", "schemas": ["coding.memschema.json"] }
The schema defines domain types, fields, roles, and capabilities:
{
"name": "coding", "version": "1", "types": { "project_rule": { "runtime_role": "constraint", "required_fields": ["claim", "evidence", "scope"], "optional_fields": ["rationale", "owner"], "search_fields": ["rationale", "owner"], "capabilities": [ "requires_evidence", "searchable", "enforceable", "guardable", "exceptions_recommended" ], "defaults": {"force": "hard", "status": "active"}, "allowed_forces": ["hard"], "allow_extra_fields": false } } }
project_rule becomes the namespaced type coding.project_rule:
module coding.memory
entity Repository.Memdsl { canonical_name: "memdsl" status: active }
coding.project_rule git.no_force_push { subject: Repository.Memdsl claim: "Never force-push the main branch." scope: repository("memdsl") confidence: high exceptions: [] rationale: "Published history must remain auditable." guard { when_any: ["push", "git", "main"] deny_any: ["force-push", "--force", "--force-with-lease"] } lifecycle { status: active } access_policy { readers: [developer, coding_agent] writers: [maintainer] reviewers: [maintainer] export: internal } evidence { source: AGENTS.md quote: "Do not force-push unless the user explicitly asks." } }
Strict schemas reject undeclared fields. Unknown memory types fail lint with unknown_memory_type; they do not silently acquire ad-hoc behavior.
Existing workspaces stay compatible: no manifest and memdsl.workspace.v1 keep legacy global linking. A workspace can explicitly audit or enforce imports with v2:
{
"schema_version": "memdsl.workspace.v2", "schemas": ["workspace-dialect.memschema.json"], "linking": {"visibility": "report"} }
use X is r
앞부분만 보여 드려요. 나머지는 저장소에서 읽어 보세요