mcp-personal
mcp-personal · Persönlicher MCP-Server
Ein persönlicher MCP-Server, erstellt mit Python (FastMCP), der mit beliebigen MCP-Clients wie Cursor / VS Code / DeepSeek Harness verwendet werden kann.
Vollständige Planung siehe PLAN.md · Präsentationsmaterial siehe docs/展示指南.md · Aktueller Stand: vier Szenarien + HTTP + Authentifizierung + pdf_extract ✅ · 21 Tests bestanden · Umgebungsvariablen siehe .env.example
Schnellstart
# 1. 创建虚拟环境并安装(需 Python 3.11+ 或 uv)
uv venv
uv pip install -e ".[dev]"
# 2. 跑测试
uv run pytest tests -q
# 3. 启动服务器(stdio,供客户端接入)
uv run python -m mcp_personal
# 4. 冒烟测试:真实 stdio 子进程链路
uv run python scripts/smoke_stdio.py
# 5. 查看服务器注册的能力清单(Tools/Prompts/Resources)
uv run python scripts/verify_capabilities.py
# 6. 调试:官方 MCP Inspector
uv run mcp dev src/mcp_personal/server.py
Related MCP server: DDG MCP Server
Clients verbinden
Die Konfiguration ist bereits voreingestellt (portable Schreibweise: uv run --project . findet die Umgebung automatisch, das Repository kann beliebig verschoben werden):
Client | Konfigurationsdatei |
Cursor |
|
VS Code |
|
Andere | Standard-stdio-Konfiguration: |
Nach der Anbindung sollte die KI zuerst das ping-Tool aufrufen, um die Verbindung zu prüfen.
HTTP-Fernzugriff (optional)
# 终端 1:启动 HTTP 服务(默认 127.0.0.1:8000,--host 0.0.0.0 可局域网访问)
uv run python scripts/run_http.py --port 8000
# 终端 2:用官方客户端验证链路
uv run python scripts/client_http_check.py --url http://127.0.0.1:8000/mcpAndere Remote-Clients konfigurieren einfach die MCP-Serveradresse als http://<host>:<port>/mcp.
HTTP-Authentifizierung (optional)
Nach dem Setzen der Umgebungsvariablen müssen alle Anforderungen Authorization: Bearer <token> enthalten:
# 终端 1:带鉴权启动
MCP_API_TOKEN=my-secret uv run python scripts/run_http.py --port 8000
# 终端 2:带 token 验证
uv run python scripts/client_http_check.py --url http://127.0.0.1:8000/mcp --token my-secretHinweis: Basiert auf dem offiziellen
StaticTokenVerifiervon FastMCP (API-Key-Stil), der Token wird im Klartext gespeichert, nur für persönliche/Entwicklungszwecke geeignet; in Produktion sollte auf OAuth/JWT umgestellt werden.
Verzeichnisstruktur
├── PLAN.md # 项目规划书
├── pyproject.toml # 依赖与打包
├── src/mcp_personal/ # 服务器代码
│ ├── server.py # FastMCP 入口(注册全部原语)
│ ├── tools/ # Tool:paper(检索)/dataset(摸底)/scaffold(课设)/devtools(目录树)
│ ├── prompts.py # Prompt:literature_review 文献综述框架
│ └── resources.py # Resource:papers://list 本地论文库
├── papers/ # 本地论文库(放 PDF)
├── datasets/ # 竞赛数据集(dataset_info 工具使用)
├── tests/ # pytest 测试(13 个)
├── .github/workflows/ # CI:push/PR 自动跑测试
├── scripts/ # smoke_stdio.py / verify_capabilities.py
├── .cursor/ .vscode/ # 客户端接入配置
└── README.mdAvailable Tools
8 toolscourse_reportA
生成一份课设报告 Markdown 骨架并保存到 reports/ 目录,返回保存路径与结构。
title: 报告标题(同时作为文件名)
course_name: 课程名称
student: 姓名学号(默认占位)
sections: 主体章节数(1-8)
| Name | Required | Description | Default |
|---|---|---|---|
| title | Yes | ||
| student | No | (姓名学号) | |
| sections | No | ||
| course_name | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations exist, so the description bears the full burden: it states side effects (saves a Markdown skeleton to reports/) and the return value (saved path and structure). It also clarifies that title doubles as the filename. It does not discuss overwrite or directory-creation behavior, but the key behaviors are disclosed.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
One functional sentence followed by a tight bullet list; every line adds needed information not present in the schema. The side effect and return value are front-loaded.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 4-parameter generation tool with no annotations and an output schema, the description covers purpose, all parameters, storage location, and return content. Minor gaps like overwrite semantics and whether reports/ is auto-created keep it from being fully exhaustive.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, and the description compensates by documenting every parameter: title as title+filename, course_name, student default placeholder, and sections with a 1–8 range that is absent from the schema. This adds real meaning beyond the raw property names and types.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names a specific verb ('生成'), a precise resource ('课设报告 Markdown 骨架'), the target directory, and the return value. This is sufficient to distinguish it from siblings like scaffold_project or paper_search, even without naming them explicitly.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The intended use is clear from the imperative first sentence, but the description gives no explicit when/when-not guidance or comparison with sibling tools such as scaffold_project. It stops at purpose and leaves alternative selection to inference.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
dataset_infoA
分析本地数据集(CSV/JSON),返回结构/行数/每列统计,供竞赛数据处理前快速摸底。
path: 数据集路径;相对路径默认基于 datasets/ 目录(或 MCP_DATASETS_DIR),绝对路径也可
| Name | Required | Description | Default |
|---|---|---|---|
| path | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden, and it does well: it discloses that the tool reads local files, returns structural/statistical summaries, and explains path resolution semantics (relative paths resolve against datasets/ or MCP_DATASETS_DIR; absolute paths are allowed). It does not discuss failure modes or read-only guarantees, but none of those are essential for this simple analysis tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is compact and well structured: one front-loaded sentence establishes purpose and outputs, followed by a single bullet that clarifies the parameter. Every sentence adds value and there is no redundant or promotional content.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a low-complexity, single-parameter tool, the description covers purpose, behavior, return scope, and path semantics. An output schema exists, so detailed return formatting is not required. Minor omissions like error behavior or file-size limits are not critical for this tool's typical use.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, but the description fully compensates for the single 'path' parameter by explaining what it is, how relative paths are resolved, and that absolute paths are also accepted. This is more than sufficient for an agent to provide a correct value.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific action ('analyze local dataset'), the supported formats (CSV/JSON), and the concrete outputs (structure, row count, per-column statistics). It also gives the intended use case (quick pre-processing reconnaissance for competitions), which clearly distinguishes it from the sibling tools that involve search, PDF extraction, or project scaffolding.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly frames when to use the tool: 'for quick familiarity before competition data processing'. While it does not name alternative tools or state exclusion conditions, the sibling set is dissimilar enough that no explicit negative guidance is necessary.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
echoA
原样返回输入的文本,用于测试工具参数传递是否正常。
| Name | Required | Description | Default |
|---|---|---|---|
| text | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the behavioral disclosure burden. It plainly states that the input text is returned unchanged, which implies a side-effect-free, read-only diagnostic operation. This is sufficient for a tool of this simplicity.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is one concise sentence, front-loaded with the core behavior and followed by the purpose. There is no filler, and every clause earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a trivial echo utility with one required parameter and an output schema, the description plus schema fully cover what an agent needs to select and invoke the tool correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, but the description references '输入的文本', which maps directly to the only required parameter, text. For a single obvious string parameter, this adequately compensates for the missing schema description.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb ('返回') and resource ('输入的文本'), and adds the intended purpose of testing parameter passing. This clearly identifies what the tool does and distinguishes it from siblings that perform substantive work like paper_search or pdf_extract.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly states when to use the tool: to verify that tool parameter passing behaves correctly. It does not mention exclusions or alternatives, but for a diagnostic echo utility the intended context is clear enough.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
paper_searchA
按关键词在 arXiv 检索学术论文,返回结构化列表(标题/作者/年份/摘要/链接)。
query: 检索关键词,如 "model context protocol"
max_results: 最多返回条数(1-20,默认 5)
year_from: 起始年份(含),如 2023;留空不限
category: arXiv 分类,如 cs.AI、cs.SE;留空不限
sort_by: 排序方式,relevance(相关度)或 date(最新优先)
| Name | Required | Description | Default |
|---|---|---|---|
| query | Yes | ||
| sort_by | No | relevance | |
| category | No | ||
| year_from | No | ||
| max_results | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden. It discloses the return structure, sorting behavior, inclusive year filtering, and result count limits. It does not mention potential rate limits, API quirks, or error handling, but for a simple arXiv search this is a minor gap rather than a critical omission.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise and well-structured: one introductory sentence stating the purpose, followed by a bullet list of parameters with clear explanations and examples. Information is front-loaded, and there is no redundant or verbose content.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
All five parameters are documented with constraints, defaults, and examples, and the return format is explicitly summarized. Although an output schema exists, the description still gives a helpful overview. An agent can invoke this tool correctly without needing to infer anything.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
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 does so thoroughly: every parameter is explained in plain language with concrete examples (e.g., query example, category codes, year_from inclusive, max_results range/default). This fully makes up for the absent schema descriptions.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states a specific verb-resource pair: search academic papers on arXiv by keyword and return a structured list (title/author/year/abstract/link). None of the sibling tools overlap with this functionality, so it is unambiguous and easily distinguishable.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description does not explicitly state 'when to use' or name alternatives, but the sibling tools are unrelated (ping, echo, pdf_extract, etc.), so there is no real ambiguity. It provides practical usage context by explaining parameters, defaults, and examples, which guides correct invocation effectively.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
pdf_extractA
下载 arXiv 论文 PDF 并解析正文,返回页数与正文预览(论文精读前快速浏览用)。
arxiv_id: arXiv 编号,如 "2507.19570v1"
max_chars: 预览字符数上限(100-5000,默认 500)
| Name | Required | Description | Default |
|---|---|---|---|
| arxiv_id | Yes | ||
| max_chars | No |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden of behavioral disclosure. It clearly states the tool downloads a PDF, parses the body, and returns page count and preview, which is meaningful behavioral context. It does not mention failure modes, network dependency, or cleanup, but for a simple read-oriented extractor this is adequate.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is compact and front-loaded: the main action appears in the first sentence, followed by a short, relevant parameter list. Every sentence earns its place with no redundant filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple two-parameter tool with an output schema, the description is nearly complete: it covers purpose, parameters, and the intended usage scenario. The main gap is the lack of explicit guidance on when to prefer sibling tools (e.g., paper_search) and any caveats about inaccessible or malformed PDFs.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, and the description fully compensates by explaining both parameters: arxiv_id with an example format and max_chars with its meaning ('preview character limit') plus range and default. This adds semantic value far beyond the bare schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb and resource: downloads an arXiv paper PDF, parses the body text, and returns page count plus a preview. It also frames the use case ('quick browsing before close reading'), which distinguishes it clearly from sibling tools like paper_search.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives a clear context for use: '论文精读前快速浏览用' (for quick browsing before intensive reading). However, it does not explicitly name alternatives or state when not to use this tool, so it stops short of full when/when-not guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
pingA
连接自检:返回 "pong"。客户端接入后先调用它确认链路通畅。
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It discloses both the behavior (connectivity self-test) and the exact deterministic output ('pong'), while implying no side effects or state changes; nothing more is needed for a zero-parameter ping.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single terse sentence that front-loads the purpose before the output detail. There is no filler, repetition, or extraneous information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a zero-parameter tool with a deterministic return value, the description is complete: it says when to call it, what it does, and what to expect. No important operational context is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool has zero parameters and the schema already fully defines the input surface, so the description is not required to add parameter details. The zero-parameter baseline of 4 applies here.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names the exact operation ('connection self-check') and the exact return value ('pong'), which makes the tool's purpose unambiguous. This is clearly distinct from siblings like echo, paper_search, or project_tree.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly says the client should call this first after connecting to confirm the link is healthy, which is clear when-to-use guidance. It does not list exclusions or alternatives, but for a trivial connectivity probe this is sufficient.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
project_treeA
列出目录的文件树(只读),默认跳过 .venv/.git/pycache 等目录。
path: 目录路径(默认当前目录;可用绝对路径)
max_depth: 最大递归深度(1-4)
skip_hidden: 跳过隐藏目录与常见依赖目录
| Name | Required | Description | Default |
|---|---|---|---|
| path | No | . | |
| max_depth | No | ||
| skip_hidden | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It explicitly notes that the operation is read-only and that hidden and common dependency directories are skipped by default. It does not detail error behavior or edge cases, but the key behavioral traits are clearly disclosed.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is compact and well-structured: a one-line purpose statement is followed by a clear bullet list of parameters. Every sentence adds useful information, and there is no redundant or filler content.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given three optional parameters and an output schema, the description provides all necessary calling context: purpose, defaults, valid value ranges, and behavioral notes. An agent can correctly invoke the tool without needing additional documentation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has no parameter descriptions, but the tool description fully compensates by explaining all three parameters: path with default and absolute-path support, max_depth with a 1-4 range, and skip_hidden with its filtering behavior. This adds substantial meaning beyond the bare schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's function: listing a directory's file tree in read-only mode. It also specifies default skip behavior for common directories like .venv/.git/__pycache__, making it distinct from the sibling tools, none of which serve this purpose.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The intended use case is implied by the description—call this tool when you need a read-only file tree of a directory. However, there is no explicit guidance about when not to use it or how it compares with alternatives, so the guidance remains implicit rather than explicit.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
scaffold_projectA
创建一个新项目的目录骨架(README/.gitignore/入口文件),返回创建的文件清单。
name: 项目名(单级目录名,防路径穿越)
language: python / node / plain
description: 项目简介,写入 README
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | ||
| language | No | python | |
| description | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
未提供注释,描述承担了披露行为的全部责任。描述说明该工具会创建文件并返回清单,但未透露副作用(如是否覆盖现有文件)、先决条件(如目标目录、权限需求)或失败模式。它提到了“防路径穿越”,但那是针对参数的,而非整体行为。对于一个修改文件系统的工具,缺乏这些信息是明显的缺陷。
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
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.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
该描述对工具而言基本可用:它说明了作用、返回内容,并定义了参数。然而,它缺少使用指南、行为细节和先决条件(如项目创建位置、是否影响当前工作目录),以及输出模式的详情(虽然描述提及返回文件清单,但未说明格式)。鉴于无注释和输出模式存在,描述本可以做得更完整。
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
输入模式的描述覆盖率为0%,但描述通过列出参数及含义予以补偿:name(单级目录名,防路径穿越)、language(python/node/plain)、description(写入README)。这些信息超出了模式中仅有类型和默认值的范围,为Agent提供了必要的上下文。描述覆盖了所有三个参数,有效弥补了模式描述缺失的问题。
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
描述明确指出该工具用于创建新项目的目录骨架,包含README、.gitignore和入口文件,并返回文件清单。它指定了动词“创建”和资源“项目目录骨架”,清晰地将自身与兄弟工具(如paper_search、pdf_extract等)区分开来,那些工具主要用于搜索或提取操作。
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
描述未提供任何使用指南,没有说明何时使用此工具与兄弟工具相比,也未提及替代方案或排除条件。对于scaffold_project这一用于初始化项目的工具,缺乏上下文,比如是否仅适用于新项目而非已有项目,或其他工具的适用条件,Agent只能凭推断使用。
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
TDQS
The eight actual tools have distinct purposes: connectivity/test, arXiv search, PDF text preview, dataset stats, project scaffolding, report generation, and file-tree listing. ping and echo are both test helpers but differ clearly (link check vs parameter passthrough), so an agent is unlikely to select the wrong tool.
Naming is a mix of bare verbs (ping, echo), verb+object (scaffold_project), object+verb (pdf_extract), and noun compounds (paper_search, project_tree, course_report). All names are lowercase, but there is no consistent verb_noun or action-oriented convention.
Eight tools is comfortably within the ideal range for a personal MCP server, and each tool provides a genuinely different capability. None feel like padding, and the count is not overwhelming for an agent to choose from.
For the inferred domain of research/development personal utilities, the advertised workflows are largely covered: search then extract papers, inspect datasets, scaffold a project, generate a report, and view a file tree. Minor gaps exist (e.g., no dataset sample-row preview or paper metadata fetch by ID), but they are workable and not severe dead ends.
Maintenance
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
A MCP server built for developers enabling Git based project management with project and personal…
Nifty's MCP server — exposes tasks, projects, messages, and files as tools for AI agents.
MCP server for accessing curated awesome list documentation
Related MCP Servers
- -licenseNot gradedqualityNot gradedmaintenanceA basic MCP server built with FastMCP framework that provides example tools including message echoing and server information retrieval. Supports both stdio and HTTP transports with Docker deployment capabilities.
- -licenseNot gradedqualityNot gradedmaintenanceA basic MCP server built with FastMCP framework that provides example tools including message echoing and server information retrieval. Supports both stdio and HTTP transports for integration with various MCP clients.
- FlicenseNot gradedqualityDmaintenanceA Model Context Protocol server built with FastMCP that features dynamic tool loading and modular management via a dedicated tool directory. It supports both stdio and HTTP transport modes, enabling efficient development and deployment of custom MCP tools.
- AlicenseNot gradedqualityBmaintenanceA high-performance personal Model Context Protocol (MCP) server built with the FastMCP Python framework.MIT
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
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/xyser-craner/personal-student-MCP'
If you have feedback or need assistance with the MCP directory API, please join our Discord server