person.work — Agent-maintained CV

Maintain your CV with your agent. Review changes, then share one record as web, PDF and open data.

我该使用它吗

质量与安全性

A
描述质量
100%
模式完整度
70%
命名质量
95%
投毒风险
100%
权限匹配度
100%
协议合规性
100%

基于对工具定义和协议合规性的自动分析。

上下文开销

~2,965token 数(工具定义)
~7.0 KB典型响应大小
对注意力有显著影响(占 128k 上下文窗口的 2.32%)

这是每次将服务器的工具加载到模型上下文窗口时所消耗的大致 token 数。数值越高,可用于其他任务的注意力就越少。

安装

一键安装

将以下内容添加到你的 `claude_desktop_config.json` 文件中:

{
  "mcpServers": {
    "career-record": {
      "url": "https://person.work/api/mcp"
    }
  }
}

远程端点

https://person.work/api/mcpstreamable-http

它能做什么

工具清单

工具(4)

🟢 只读🟡 写入🔴 删除⚪ 未知
🟢get_profile(username, include_extensions, format)

Returns one public Career Record whose owner explicitly enabled MCP visibility. Contact values are excluded.

输入模式

{
  "type": "object",
  "properties": {
    "username": {
      "type": "string",
      "minLength": 3,
      "maxLength": 50,
      "description": "The person.work profile slug"
    },
    "include_extensions": {
      "default": true,
      "type": "boolean"
    },
    "format": {
      "default": "full",
      "type": "string",
      "enum": [
        "full",
        "summary"
      ]
    }
  },
  "required": [
    "username"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🔴sync_my_profile(identity, profile, extension, experiences)

Explicit initial-import operation for structured facts already interpreted by the calling agent. It does not accept or store a raw CV, PDF, or source text, and person.work does not run a second AI interpretation. The operation deterministically validates the payload and atomically creates a private profile when needed or replaces the owner's profile facts and complete experience list. Experiences may include a public HTTPS company_logo_url; person.work imports a protected copy. Use null to remove a logo and omit the field to preserve it. Identity is required only for first creation. Never use this for routine updates.

输入模式

{
  "type": "object",
  "properties": {
    "identity": {
      "description": "Required only when this initial sync creates the authenticated owner's private person.work profile.",
      "type": "object",
      "properties": {
        "first_name": {
          "type": "string",
          "minLength": 1,
          "maxLength": 120
        },
        "last_name": {
          "type": "string",
          "minLength": 1,
          "maxLength": 120
        },
        "slug": {
          "type": "string",
          "pattern": "^[a-z0-9][a-z0-9-]{1,28}[a-z0-9]$",
          "description": "Requested public slug. Used only when the authenticated owner has no person.work profile yet."
        }
      },
      "required": [
        "first_name",
        "last_name",
        "slug"
      ],
      "additionalProperties": false
    },
    "profile": {
      "type": "object",
      "properties": {
        "avatar_url": {
          "description": "Public HTTPS URL of the profile picture. person.work imports and stores a protected copy, cropped to a portrait frame. Use null to remove the current picture and fall back to initials; omit the field to preserve it.",
          "anyOf": [
            {
              "type": "string",
              "maxLength": 2000,
              "format": "uri",
              "pattern": "^https:\\/\\/"
            },
            {
              "type": "null"
            }
          ]
        },
        "headline": {
          "type": "string",
          "minLength": 1,
          "maxLength": 240
        },
        "summary": {
          "type": "string",
          "minLength": 1,
          "maxLength": 4000
        },
        "summary_short": {
          "type": "string",
          "maxLength": 1000
        },
        "summary_full": {
          "type": "string",
          "maxLength": 12000
        },
        "profession_group": {
          "type": "string",
          "minLength": 1,
          "maxLength": 160
        },
        "competencies": {
          "maxItems": 80,
          "type": "array",
          "items": {
            "type": "string",
            "minLength": 1,
            "maxLength": 160
          }
        },
        "primary_language": {
          "default": "de",
          "type": "string",
          "minLength": 2,
          "maxLength": 12
        }
      },
      "required": [
        "headline",
        "summary",
        "summary_short",
        "summary_full",
        "profession_group",
        "competencies"
      ],
      "additionalProperties": false
    },
    "extension": {
      "type": "object",
      "properties": {
        "extension_id": {
          "type": "string",
          "minLength": 1,
          "maxLength": 120
        },
        "fields": {
          "type": "object",
          "propertyNames": {
            "type": "string",
            "minLength": 1,
            "maxLength": 120
          },
          "additionalProperties": {
            "anyOf": [
              {
                "type": "string",
                "maxLength": 320
              },
              {
                "maxItems": 60,
                "type": "array",
                "items": {
                  "type": "string",
                  "minLength": 1,
                  "maxLength": 160
                }
              },
              {
                "type": "number"
              },
              {
                "type": "object",
                "properties": {
                  "min": {
                    "type": "number"
                  },
                  "max": {
                    "type": "number"
                  }
                },
                "required": [
                  "min",
                  "max"
                ],
                "additionalProperties": false
              }
            ]
          }
        }
      },
      "required": [
        "extension_id",
        "fields"
      ],
      "additionalProperties": false,
      "description": "Typed profession fields (e.g. primaryLanguages, seniority). Replaces the stored fields of that extension; omit to leave them untouched."
    },
    "experiences": {
      "minItems": 1,
      "maxItems": 24,
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "stable_uri": {
            "type": "string",
            "minLength": 3,
            "maxLength": 200
          },
          "company": {
            "type": "string",
            "minLength": 1,
            "maxLength": 240
          },
          "company_logo_url": {
            "description": "Public HTTPS URL of the company logo. person.work imports and stores a protected copy. Use null to remove the current logo; omit the field to preserve it.",
            "anyOf": [
              {
                "type": "string",
                "maxLength": 2000,
                "format": "uri",
                "pattern": "^https:\\/\\/"
              },
              {
                "type": "null"
              }
            ]
          },
          "role": {
            "type": "string",
            "minLength": 1,
            "maxLength": 320
          },
          "start_date": {
            "type": "string",
            "format": "date",
            "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$"
          },
          "end_date": {
            "anyOf": [
              {
                "type": "string",
                "format": "date",
                "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$"
              },
              {
                "type": "null"
              }
            ]
          },
          "headline": {
            "anyOf": [
              {
                "type": "string",
                "maxLength": 500
              },
              {
                "type": "null"
              }
            ]
          },
          "key_result": {
            "anyOf": [
              {
                "type": "string",
                "maxLength": 2000
              },
              {
                "type": "null"
              }
            ]
          },
          "context": {
            "anyOf": [
              {
                "type": "string",
                "maxLength": 8000
              },
              {
                "type": "null"
              }
            ]
          },
          "problem": {
            "anyOf": [
              {
                "type": "string",
                "maxLength": 8000
              },
              {
                "type": "null"
              }
            ]
          },
          "contribution": {
            "anyOf": [
              {
                "type": "string",
                "maxLength": 16000
              },
              {
                "type": "null"
              }
            ]
          },
          "result": {
            "anyOf": [
              {
                "type": "string",
                "maxLength": 8000
              },
              {
                "type": "null"
              }
            ]
          },
          "learning": {
            "anyOf": [
              {
                "type": "string",
                "maxLength": 8000
              },
              {
                "type": "null"
              }
            ]
          },
          "order_index": {
            "type": "integer",
            "minimum": 0,
            "maximum": 99
          },
          "is_prominent": {
            "type": "boolean"
          }
        },
        "required": [
          "stable_uri",
          "company",
          "role",
          "start_date",
          "end_date",
          "order_index",
          "is_prominent"
        ],
        "additionalProperties": false
      }
    }
  },
  "required": [
    "profile",
    "experiences"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "additionalProperties": false,
  "description": "Structured CV facts interpreted by the calling agent. Raw files and source text are not part of this contract; person.work validates and stores only this structured payload."
}
🟢get_my_career_record

Returns the OAuth-authenticated owner's canonical record. Read this before proposing an ongoing CV update so stable experience identifiers and confirmed facts are preserved.

输入模式

{
  "type": "object",
  "properties": {},
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟡propose_my_career_change(instruction, source_label, proposed_patch, diff_summary)

Adds a structured, human-readable diff to the owner's review inbox. Experience upserts may include a public HTTPS company_logo_url; person.work imports its own protected copy only after owner approval. Use this for normal maintenance after the initial import; the agent cannot apply or publish it.

输入模式

{
  "type": "object",
  "properties": {
    "instruction": {
      "type": "string",
      "minLength": 1,
      "maxLength": 12000
    },
    "source_label": {
      "anyOf": [
        {
          "type": "string",
          "maxLength": 300
        },
        {
          "type": "null"
        }
      ]
    },
    "proposed_patch": {
      "type": "object",
      "properties": {
        "profile": {
          "type": "object",
          "properties": {
            "avatar_url": {
              "description": "Public HTTPS URL of the profile picture. person.work imports and stores a protected copy, cropped to a portrait frame. Use null to remove the current picture and fall back to initials; omit the field to preserve it.",
              "anyOf": [
                {
                  "type": "string",
                  "maxLength": 2000,
                  "format": "uri",
                  "pattern": "^https:\\/\\/"
                },
                {
                  "type": "null"
                }
              ]
            },
            "headline": {
              "anyOf": [
                {
                  "type": "string",
                  "maxLength": 300
                },
                {
                  "type": "null"
                }
              ]
            },
            "summary": {
              "anyOf": [
                {
                  "type": "string",
                  "maxLength": 12000
                },
                {
                  "type": "null"
                }
              ]
            },
            "summary_short": {
              "anyOf": [
                {
                  "type": "string",
                  "maxLength": 2000
                },
                {
                  "type": "null"
                }
              ]
            },
            "summary_full": {
              "anyOf": [
                {
                  "type": "string",
                  "maxLength": 20000
                },
                {
                  "type": "null"
                }
              ]
            },
            "profession_group": {
              "anyOf": [
                {
                  "type": "string",
                  "maxLength": 160
                },
                {
                  "type": "null"
                }
              ]
            },
            "competencies": {
              "maxItems": 40,
              "type": "array",
              "items": {
                "type": "string",
                "minLength": 1,
                "maxLength": 160
              }
            },
            "spoken_languages": {
              "maxItems": 40,
              "type": "array",
              "items": {
                "type": "string",
                "minLength": 1,
                "maxLength": 160
              }
            }
          },
          "additionalProperties": false
        },
        "extension": {
          "type": "object",
          "properties": {
            "extension_id": {
              "type": "string",
              "minLength": 1,
              "maxLength": 120
            },
            "fields": {
              "type": "object",
              "propertyNames": {
                "type": "string",
                "minLength": 1,
                "maxLength": 120
              },
              "additionalProperties": {
                "anyOf": [
                  {
                    "type": "string",
                    "maxLength": 320
                  },
                  {
                    "maxItems": 60,
                    "type": "array",
                    "items": {
                      "type": "string",
                      "minLength": 1,
                      "maxLength": 160
                    }
                  },
                  {
                    "type": "number"
                  },
                  {
                    "type": "object",
                    "properties": {
                      "min": {
                        "type": "number"
                      },
                      "max": {
                        "type": "number"
                      }
                    },
                    "required": [
                      "min",
                      "max"
                    ],
                    "additionalProperties": false
                  }
                ]
              }
            }
          },
          "required": [
            "extension_id",
            "fields"
          ],
          "additionalProperties": false,
          "description": "Typed profession fields (e.g. primaryLanguages, seniority). Replaces the stored fields of that extension; omit to leave them untouched."
        },
        "experiences": {
          "minItems": 1,
          "maxItems": 24,
          "type": "array",
          "items": {
            "oneOf": [
              {
                "type": "object",
                "properties": {
                  "operation": {
                    "type": "string",
                    "const": "upsert"
                  },
                  "experience": {
                    "type": "object",
                    "properties": {
                      "stable_uri": {
                        "type": "string",
                        "minLength": 3,
                        "maxLength": 200
                      },
                      "company": {
                        "type": "string",
                        "minLength": 1,
                        "maxLength": 240
                      },
                      "company_logo_url": {
                        "description": "Public HTTPS URL of the company logo. person.work imports and stores a protected copy. Use null to remove the current logo; omit the field to preserve it.",
                        "anyOf": [
                          {
                            "type": "string",
                            "maxLength": 2000,
                            "format": "uri",
                            "pattern": "^https:\\/\\/"
                          },
                          {
                            "type": "null"
                          }
                        ]
                      },
                      "role": {
                        "type": "string",
                        "minLength": 1,
                        "maxLength": 320
                      },
                      "start_date": {
                        "type": "string",
                        "format": "date",
                        "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$"
                      },
                      "end_date": {
                        "anyOf": [
                          {
                            "type": "string",
                            "format": "date",
                            "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$"
                          },
                          {
                            "type": "null"
                          }
                        ]
                      },
                      "headline": {
                        "anyOf": [
                          {
                            "type": "string",
                            "maxLength": 500
                          },
                          {
                            "type": "null"
                          }
                        ]
                      },
                      "key_result": {
                        "anyOf": [
                          {
                            "type": "string",
                            "maxLength": 2000
                          },
                          {
                            "type": "null"
                          }
                        ]
                      },
                      "context": {
                        "anyOf": [
                          {
                            "type": "string",
                            "maxLength": 8000
                          },
                          {
                            "type": "null"
                          }
                        ]
                      },
                      "problem": {
                        "anyOf": [
                          {
                            "type": "string",
                            "maxLength": 8000
                          },
                          {
                            "type": "null"
                          }
                        ]
                      },
                      "contribution": {
                        "anyOf": [
                          {
                            "type": "string",
                            "maxLength": 16000
                          },
                          {
                            "type": "null"
                          }
                        ]
                      },
                      "result": {
                        "anyOf": [
                          {
                            "type": "string",
                            "maxLength": 8000
                          },
                          {
                            "type": "null"
                          }
                        ]
                      },
                      "learning": {
                        "anyOf": [
                          {
                            "type": "string",
                            "maxLength": 8000
                          },
                          {
                            "type": "null"
                          }
                        ]
                      },
                      "order_index": {
                        "type": "integer",
                        "minimum": 0,
                        "maximum": 99
                      },
                      "is_prominent": {
                        "type": "boolean"
                      }
                    },
                    "required": [
                      "stable_uri",
                      "company",
                      "role",
                      "start_date",
                      "end_date",
                      "order_index",
                      "is_prominent"
                    ],
                    "additionalProperties": false
                  }
                },
                "required": [
                  "operation",
                  "experience"
                ],
                "additionalProperties": false
              },
              {
                "type": "object",
                "properties": {
                  "operation": {
                    "type": "string",
                    "const": "remove"
                  },
                  "stable_uri": {
                    "type": "string",
                    "minLength": 3,
                    "maxLength": 200
                  }
                },
                "required": [
                  "operation",
                  "stable_uri"
                ],
                "additionalProperties": false
              }
            ]
          }
        }
      },
      "additionalProperties": false
    },
    "diff_summary": {
      "default": [],
      "maxItems": 100,
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "path": {
            "type": "string",
            "minLength": 1,
            "maxLength": 300
          },
          "operation": {
            "type": "string",
            "enum": [
              "add",
              "replace",
              "remove"
            ]
          },
          "before": {},
          "after": {},
          "reason": {
            "type": "string",
            "maxLength": 1000
          }
        },
        "required": [
          "path",
          "operation"
        ]
      }
    }
  },
  "required": [
    "instruction",
    "proposed_patch"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}

社区

评价此服务器

证据

最近观测

已验证未记录版本4 个工具
已验证未记录版本4 个工具
已验证未记录版本4 个工具