Skip to main content
Glama
ibeeger

persona-profile-mcp

by ibeeger

persona-profile-mcp

一个本地 MCP server,让 AI 助手在对话中维护人物画像(联系人库):创建、检索、补充、修正你提到过的人的信息。

面向 MCP 2026-07-28 规范实现:无协议级 session,跨调用状态通过显式 profileId 传递;服务端经 serveStdio 提供,同时兼容 2025 纪元的旧客户端。

详细的使用手册(工具参数、搜索打分规则、典型流程、FAQ)见 docs/USAGE.md

安装

npm install
npm run build

Related MCP server: Rapport MCP Server

配置

存储位置由 MCP_PROFILE_DIR 决定,默认 ~/.mcp-persona/profiles。每个人一个 JSON 文件,可直接手改、可用 git 版本化。

日志级别由 MCP_PERSONA_LOG 决定:info(默认,含启动提示)/ error(只输出错误)/ silent(完全静默)。日志一律走 stderr。

Claude Code

claude mcp add persona -- node /绝对路径/dist/index.js

Claude Desktop

claude_desktop_config.json 里加:

{
  "mcpServers": {
    "persona": {
      "command": "node",
      "args": ["/绝对路径/dist/index.js"],
      "env": { "MCP_PROFILE_DIR": "/绝对路径/profiles" }
    }
  }
}

工具

工具

用途

search_profiles

按姓名/别名/摘要/事实内容模糊搜索

get_profile

按 id 读完整画像(含各条事实的 factId)

list_profiles

按最近更新倒序列出

create_profile

新建画像,重名时返回 duplicateCandidates 提示合并

update_profile

改核心字段,别名增量合并

add_facts

批量追加事实,自动跳过重复

update_fact

修正单条事实(信息过时时用这个,别追加矛盾条目)

delete_fact

删除单条事实

本版不提供 delete_profile。误建的重复画像请手动删除对应的 JSON 文件。

数据结构

{
  "id": "p_7f3a2c91",
  "name": "张伟",
  "aliases": ["Wei", "老张"],
  "relationship": "前同事",
  "summary": "字节推荐算法工程师",
  "facts": [
    {
      "id": "f_3d1e5a02",
      "category": "work",
      "content": "在字节跳动做推荐算法",
      "confidence": "high",
      "source": "2026-08-02 对话",
      "createdAt": "2026-08-02T08:00:00.000Z",
      "updatedAt": "2026-08-02T08:00:00.000Z"
    }
  ],
  "createdAt": "2026-08-02T08:00:00.000Z",
  "updatedAt": "2026-08-02T08:00:00.000Z"
}

category 取值:basic / work / preference / relationship / event / contact / otherconfidence 取值:high / medium / low(默认 medium)。

开发

npm run typecheck
npm test

设计

docs/superpowers/specs/2026-08-02-persona-profile-mcp-server-design.md

Available Tools

8 tools
add_facts追加事实条目A

往已有画像追加一条或多条事实。内容与已有事实重复的会被自动跳过并在 skipped 中报告。若某条信息是对旧信息的更正(如换了工作),请改用 update_fact,避免留下互相矛盾的条目。

ParametersJSON Schema
NameRequiredDescriptionDefault
factsYes
profileIdYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
addedYes
profileYes
skippedYes

TDQS

A4.6/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the full burden of behavioral disclosure. It does disclose the deduplication behavior (facts matching existing content are skipped and reported in skipped) and the anti-contradiction guidance. However, it does not mention potential issues like append-only semantics, whether facts are immutable, or return structure beyond skipped. Still, the dedup and skip reporting are meaningful disclosures given zero annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is compact — two sentences total — and every sentence earns its place. The first sentence states the primary function and dedup behavior; the second provides the critical alternative-tool guidance. No filler, no redundancy, and the most important differentiating guidance is front-loaded in the correction sentence.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given a well-structured schema (enum categories, confidence with default) and an output schema, the description covers what's most critical beyond the schema: dedup behavior and correction routing. It lacks some depth around edge cases (e.g., what 'skipped' means structurally, whether the tool returns the created fact IDs), but for a moderate-complexity tool with strong schema support, this is adequate-to-good. The correction routing is the highest-value missing-schema context and it's present.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, so the description must compensate. It explains the semantic concept of facts (content added to a profile) and the dedup behavior, but does not detail the individual parameters (profileId, facts, category, source, confidence). However, the schema itself is richly self-descriptive with enums and defaults for category and confidence, so the schema does the heavy lifting for parameter semantics. The description adds the behavioral meaning around dedup and correction.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the verb (append facts), the resource (existing profile), and key behaviors (deduplication via skipped reporting, correction handling via update_fact). It explicitly distinguishes the tool from the sibling update_fact by clarifying that corrections should use the sibling instead. The scope and behavior are specific and immediately actionable.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description explicitly states when to use this tool (appending new facts to an existing profile), and provides a clear exclusion: if the fact is a correction (e.g., job change), use update_fact instead to avoid contradictory entries. It names the sibling tool and explains the rationale, giving the agent concrete decision guidance.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

create_profile创建人物画像A

为一个新的人创建画像。调用前请先用 search_profiles 确认此人没有画像。若返回的 duplicateCandidates 非空,说明可能重复,应改用 update_profile / add_facts 合并。

ParametersJSON Schema
NameRequiredDescriptionDefault
nameYes主名称
factsNo初始事实条目
aliasesNo别名、昵称、英文名
summaryNo一句话摘要
relationshipNo与用户的关系,如「前同事」「客户」

Output Schema

ParametersJSON Schema
NameRequiredDescription
profileYes
duplicateCandidatesYes

TDQS

A4.2/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the full behavioral burden. '创建画像' implies creating a new record, and the description warns about duplicates, which is useful behavioral context. However, it does not disclose whether this is a read or write operation's safety profile, or any other behavioral traits beyond the duplicate handling.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two concise sentences, front-loaded with the core purpose, then actionable guidance. Zero wasted words. Each sentence earns its place - the first states the primary function, the second gives critical preconditions and fallback behavior.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The tool has an output schema, so return-value explanation isn't needed. The description covers the key preconditions (check for duplicates), the merge fallback, and mentions the duplicateCandidates mechanism. Given the moderate complexity (5 params, all documented in schema) and the presence of an output schema, this is reasonably complete. Could mention ideal fact categories or data quality but is adequate overall.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema already documents all 5 parameters (name, facts, aliases, summary, relationship). The description adds the important context that 'duplicateCandidates' being non-empty signals potential duplicates, which clarifies the return/output semantics. However, it doesn't add much depth to individual parameter meaning beyond what the schema's property descriptions already provide.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Description clearly states the purpose: create a profile for a new person ('为一个新的人创建画像'). It names the specific verb+resource and lists the tool's primary function. It also distinguishes itself from sibling tools like search_profiles, update_profile, and add_facts by explicitly naming them.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Excellent usage guidance. It explicitly instructs to check search_profiles first to confirm no existing profile, and tells the agent what to do when duplicateCandidates is non-empty: switch to update_profile/add_facts to merge. This is explicit when-to-use and when-not-to-use with named alternatives.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

delete_fact删除事实条目A
Destructive

从画像中删除一条事实。仅在该信息确认错误或不再相关时使用;若只是过时,优先用 update_fact 改写以保留历史脉络。不要用它逐条清空整份画像来变相删除画像 —— 本 server 没有删除画像的工具,清空只会留下一个没有事实的空壳,仍然出现在搜索与重名检测里;需要删除整份画像时请让用户手动删除对应的 .json 文件。

ParametersJSON Schema
NameRequiredDescriptionDefault
factIdYes
profileIdYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
profileYes
deletedFactIdYes

TDQS

A4.1/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The destructiveHint annotation already declares the destructive nature, so the bar is lower. The description adds valuable context beyond the annotation: that clearing all facts leaves an empty profile shell that still surfaces in search/results, that there is no profile-deletion tool in this server, and that manual file deletion is the correct path for whole-profile removal. This meaningfully enriches the behavioral picture beyond the bare annotation.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is appropriately wordy for the warnings it conveys — it's a single focused paragraph that packs when-to-use, when-not-to-use, and a strong misuse warning into a compact space. Every sentence earns its place; no filler or tautology.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The tool is deceptively simple (2 params) but has a significant misuse pitfall (clearing whole profiles). The description thoroughly addresses this trap and the alternative path. An output schema exists, so return-value documentation isn't required. The only remaining gap is parameter-level detail (what factId looks like), but overall this is well-covered for a simple destructive action.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 0%, so the description carries the full burden for explaining the two parameters. However, the description does not explain what factId and profileId refer to beyond their obvious names, nor the format/type of each. The concept of a 'fact' is implied by '事实条目' but never formally tied to the factId parameter. Given 0% coverage and only 2 simple parameters, the baseline should compensate, but the description adds minimal parameter-specific semantics.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states it deletes a single fact from a profile ('从画像中删除一条事实'), with a specific verb and resource. It distinguishes from siblings by explicitly contrasting with update_fact and warning against clearing entire profiles, though the sibling differentiation is embedded within usage warnings rather than a standalone purpose statement.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Excellent guidance: explicitly states when to use (information confirmed incorrect or no longer relevant), when NOT to use (outdated info should use update_fact instead), and explicitly warns against using it to clear entire profiles. It also names the alternative tool (update_fact) and explains the consequence of misuse (a hollow shell that still appears in search and duplicate detection).

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_profile读取人物画像A
Read-only

按 id 读取完整人物画像,含全部事实条目及其 factId。id 通常来自 search_profiles 或 list_profiles。

ParametersJSON Schema
NameRequiredDescriptionDefault
profileIdYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
profileYes

TDQS

A3.9/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations provide readOnlyHint=true, so the safety profile is covered. The description adds that it returns '完整人物画像' including all fact entries and their factIds, which is useful return-context. But it doesn't disclose behavior like pagination, limits, or whether facts are returned in any particular order. With readOnlyHint covering the main concern, a 3 is appropriate.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two concise sentences, no wasted words. Front-loaded with the primary purpose, followed immediately by source guidance for the id. Every word earns its place.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The tool has an output schema, so return-value explanation is not needed. It has a single required parameter that is adequately explained. Given the low complexity and presence of output schema and readOnlyHint annotation, the description is reasonably complete. It could briefly mention that facts are listed with factIds (which it does), and the provenance of the id is covered.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, so the description must carry the burden for the single profileId parameter. The description clarifies the id's provenance ('通常来自 search_profiles 或 list_profiles'), effectively explaining what profileId means and where to get it. With only 1 parameter, this compensation is sufficient.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific verb+resource ('按 id 读取完整人物画像') and specifies what's returned (全部事实条目及其 factId). It distinguishes itself from sibling read tools but doesn't explicitly name them as alternatives.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides clear context on when to use this tool — it states the id '通常来自 search_profiles 或 list_profiles', which gives the agent guidance on how ids are obtained and implies this is the retrieval tool for a known id. However, it doesn't explicitly state when NOT to use it versus alternatives like search_profiles.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

list_profiles列出人物画像A
Read-only

按最近更新时间倒序列出全部人物画像的摘要。用于浏览;按关键词检索请用 search_profiles。

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNo
offsetNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
totalYes
profilesYes

TDQS

A4.5/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The description states the result is a summary ('摘要') rather than full profiles, which is meaningful behavioral context. The ordering behavior (reverse chronological by update time) is also disclosed. With readOnlyHint=true already in annotations, the safety profile is covered, and the description adds the summary-vs-full disclosure that annotations don't provide.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two crisp sentences, front-loaded with the core action and ordering. The alternative tool reference is packed into one clause. Zero wasted words, perfectly concise.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

This is a simple paginated list with an output schema present, so the return structure is already documented. readOnlyHint is annotated. Two trivial params are self-documenting. The description fully covers purpose, ordering, and the sibling distinction. There's nothing meaningful left undisclosed for a read-only list tool.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 0%, but both parameters (limit, offset) are standard pagination parameters whose meaning is self-evident from their names and numeric defaults. The description doesn't add parameter semantics, but the parameters are low-complexity (integer limit/offset with defaults). Baseline 3 is appropriate given the trivial parameter semantics.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Clearly states the verb (list), resource (profiles), scope (all), and ordering (most recent update first). Explicitly distinguishes from search_profiles, which handles keyword retrieval. The Chinese title '列出人物画像' reinforces the resource and action.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicitly states when to use this tool ('用于浏览', for browsing) and explicitly names the alternative for keyword searching ('按关键词检索请用 search_profiles'). This is a clear when-to-use with a named alternative, exactly matching the high standard.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

search_profiles搜索人物画像A
Read-only

按姓名、别名、摘要或已记录的事实内容模糊搜索人物画像,返回轻量列表。在记录或查询某人信息前先调用本工具确认此人是否已有画像,避免重复创建。

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNo
queryYes姓名、别名或任意关键词

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultsYes

TDQS

A4.3/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true, which covers the safety profile. The description adds that it returns a 'lightweight list' and does fuzzy matching, which is useful but doesn't detail pagination, match quality, or ordering behavior.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two dense sentences, no waste. Front-loaded with the core purpose and then usage guidance. Could be slightly more structured but efficiently communicates both what and when.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With an output schema present and readOnly annotation covering safety, the description covers the key elements: purpose, search fields, return type (lightweight list), and when to use. The tool is a simple search, so completeness is adequate for its complexity.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is only 50% (limit documented with min/max/default, query documented as text). The description enriches the query parameter by explaining it accepts name, alias, summary, or facts content — adding semantic meaning beyond the schema's generic '姓名、别名或任意关键词'. The limit parameter is well-covered by schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Clear verb+resource+scope: fuzzy search of profiles by name, alias, summary, or recorded facts, returning lightweight list. Differentiates from siblings by specifying it's a pre-write lookup tool (avoid duplicate creation).

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicit usage context: call before recording or querying someone's info to confirm existing profile and avoid duplicate creation. This gives clear when-to-use guidance and implies the alternative is to proceed with create_profile if no match.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

update_fact修正事实条目A
Idempotent

修改画像中某一条已有事实。信息过时时(换工作、搬城市)应改写原条目,而不是用 add_facts 追加一条互相矛盾的新事实。factId 来自 get_profile。

ParametersJSON Schema
NameRequiredDescriptionDefault
factIdYes
sourceNo
contentNo
categoryNo
profileIdYes
confidenceNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
factYes
profileYes

TDQS

A4/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

注释提供了 idempotentHint=true,描述没有与其矛盾。但描述没有补充注释之外的行为信息——例如修改是覆盖还是合并、是否影响历史记录、是否有权限要求。作为修改类工具(非读取),描述承担了较多的行为披露责任,但未提供额外语境。

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

描述精炼,两条简短且信息密度高:第一条说明工具功能,第二条提供使用场景和替代工具。没有冗余。虽然未逐参数说明但内容紧凑高效,接近满分。

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

工具较复杂(6 参数、2 枚举、修改操作),有 output schema 可解释返回结构。描述说明了核心用法(何时改 vs 追加)和 factId 来源,这对主要使用场景是足够的。但未描述修改的成功/失败行为、对相关条目的影响、或枚举参数含义,扣分。若无 output schema 则会更不足。

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema 覆盖率为 0%,6 个参数中有 2 个 required(profileId、factId)。描述提到了 factId 的来源("factId 来自 get_profile"),为参数添加了 schema 之外的有用语义。不过其他参数(content、source、category、confidence)未在描述中说明,但考虑到 0 覆盖率,描述做的补偿优于基线水平。

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

描述明确说明"修改画像中某一条已有事实",动词+资源明确(update fact)。它通过说明与 add_facts 的区别来区分于兄弟工具,说明此工具用于改写已有条目而不是追加新条目。中文标题"修正事实条目"也清晰表达了用途。

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

给出了明确的用法指导:"信息过时时(换工作、搬城市)应改写原条目,而不是用 add_facts 追加一条互相矛盾的新事实"。这明确说明了何时使用此工具、何时不用,并直接命名了替代工具 add_facts。

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

update_profile更新画像核心字段A
Idempotent

修改画像的姓名、关系、摘要,或补充别名。只有显式传入的字段会被修改。aliases 是增量合并(不会删除已有别名)。增删事实请用 add_facts / update_fact / delete_fact。

ParametersJSON Schema
NameRequiredDescriptionDefault
nameNo
aliasesNo要补充的别名,会合并进现有别名
summaryNo
profileIdYes
relationshipNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
profileYes

TDQS

A4.2/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Beyond the idempotentHint annotation, the description adds important behavioral details: only explicitly passed fields are modified, and aliases are incrementally merged without deleting existing ones. This partial-update and merge semantics is critical behavioral context that annotations don't cover. Could potentially note auth requirements but the core semantics are well disclosed.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three concise sentences with zero waste. Every sentence adds distinct value: what fields, the partial-update behavior, the merge behavior, and the sibling tool diversion. Well front-loaded with purpose then semantics.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The tool is a partial-update mutation with 5 params, an output schema exists, and annotations provide idempotency. The description covers the essential semantics (partial update, merge behavior, sibling routing) well. Could add a note about return values, but the output schema covers that responsibility. Adequate for the tool's complexity.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is only 20%, so the description bears responsibility for clarifying params. It clarifies aliases semantics (incremental merge, not delete) and states which fields are modified (name, relationship, summary, aliases), adding meaning beyond the schema. However, coverage is low and the description doesn't detail relationship or summary constraints beyond the schema's basic types.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the verb (修改/update) and specific fields (姓名/name, 关系/relationship, 摘要/summary, 别名/aliases). It distinguishes from siblings by explicitly naming add_facts / update_fact / delete_fact for fact operations. Could be slightly stronger in naming the tool's distinct role vs create_profile, but the field-level scope is clear.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description explicitly states the incremental merge behavior ('只有显式传入的字段会被修改') and explicitly directs users to use add_facts / update_fact / delete_fact for fact operations, providing clear exclusions and alternatives. This is strong when-to-use vs when-not-to guidance.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections. Dates show when Glama detected each change.

  1. 8 tool updatesv0.1.0
    • First observedadd_facts
    • First observedcreate_profile
    • First observeddelete_fact
    • First observedget_profile
    • First observedlist_profiles
    • First observedsearch_profiles
    • First observedupdate_fact
    • First observedupdate_profile

TDQS

A4.2/5.0
Disambiguation4/5

The tools are mostly distinct: search vs get vs list cover retrieval, create/update cover profile lifecycle, and add/update/delete cover facts. The main potential confusion is between add_facts (append new) and update_fact (modify existing), but the descriptions provide clear guidelines on when to use each. update_profile and update_fact are also distinct (profile-level vs fact-level).

Naming Consistency5/5

All tools follow a consistent verb_noun pattern: search_profiles, get_profile, list_profiles, create_profile, update_profile, add_facts, update_fact, delete_fact. Retrieval verbs (search/get/list) and mutation verbs (create/update/add/delete) are cleanly separated with consistent snake_case.

Tool Count5/5

8 tools is a well-scoped set for a persona profile server. Each tool has a clear purpose covering retrieval, profile management, and fact management. The count is neither thin nor bloated for the domain.

Completeness4/5

The server covers the full lifecycle well: search/get/list, create/update for profiles, and add/update/delete for facts. The intentional absence of a delete_profile tool is documented as a design decision (with workaround guidance), and there's no glaring missing operation for the core workflow.

Maintenance

ActivityMaintained
ResponsivenessSyncing

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Related MCP Connectors

Related MCP Servers

  • A
    license
    Not graded
    quality
    B
    maintenance
    Enables AI assistants to query local conversation transcripts and relationship data via a local MCP server, allowing retrieval of past conversations and facts about people.
    1
    AGPL 3.0
  • A
    license
    Not graded
    quality
    B
    maintenance
    A CardDAV MCP server that exposes contacts and address books as tools for AI assistants.
    136
    1
    MIT
  • A
    license
    Not graded
    quality
    D
    maintenance
    A privacy-first MCP server that acts as the universal memory and profile layer for AI agents, enabling profile management, skills, resume import, and team sync.
    4
    MIT

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/ibeeger/memory_mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server