Aurai Advisor (上级顾问 MCP)
상급 고문 MCP (Aurai Advisor)
로컬 AI가 복잡한 프로그래밍 문제에 직면했을 때 원격 거대 모델(LLM)에게 계속해서 자문을 구할 수 있게 해주는 MCP 서비스입니다.
현재 저장소는 "장기 사용 가능" 버전이며, 다음과 같은 핵심 기능이 보완되었습니다:
다중 턴 상담 및 진행 상황 보고
sync_context파일 동기화코드/설정 파일 자동 텍스트 변환 및 업로드
세션 격리 (
session_id)기록 영속성, 파일 잠금, 원자적 쓰기
기록 자동 요약
컨텍스트 윈도우 트리밍
이번 업데이트 내용
이번 메인 업데이트에서는 다음 사항들에 중점을 두었습니다:
기록 삭제 후 재시작 시 다시 "부활"하는 문제 수정
session_id세션 격리 추가로 서로 다른 문제 간의 컨텍스트 혼선 방지AURAI_TEMPERATURE,AURAI_MAX_ITERATIONS,AURAI_LOG_LEVEL등 실제 사용 가능한 설정 적용project_info, 보충 답변 등의 컨텍스트가 상급 고문에게 제대로 전달되도록 수정기록 파일 잠금 및 원자적 쓰기 추가로 동시 쓰기로 인한 기록 파일 손상 위험 감소
기록 자동 요약 추가로 긴 세션에서도 비대해지지 않음
컨텍스트 윈도우 트리밍 추가로
AURAI_CONTEXT_WINDOW가 실제로 적용됨sync_context가 코드/설정 등 텍스트 파일을 자동으로 전송 가능한 텍스트로 변환 지원 (수동으로.txt로 복사할 필요 없음)README, 설치 가이드 및 사용자 매뉴얼 재작성, 설치 단계를 더 앞부분에 배치
이 저장소를 처음 접하신다면 다음 두 가지가 가장 중요합니다:
아래의 "설치 설명"을 먼저 확인하세요.
코드 파일은 이제
sync_context에 직접 전달할 수 있습니다.
Related MCP server: session-coord-mcp
용도
이 MCP는 Claude Code 또는 stdio 방식을 지원하는 다른 MCP 클라이언트에서 사용하기 적합합니다.
주요 시나리오:
로컬 AI가 이미 시도했지만 문제가 해결되지 않은 경우
에러, 코드, 문서, 설정을 모두 "상급 고문"에게 전달해야 할 때
복잡한 문제 해결 과정을 "질문 -> 실행 -> 보고 -> 다음 단계"의 다중 턴 프로세스로 만들고 싶을 때
기능 개요
consult_aurai주요 상담 도구. 질문, 코드 조각, 컨텍스트, 시도한 해결책을 제출하여 상급 고문의 분석과 다음 단계 제안을 받습니다.sync_context코드 및 문서 컨텍스트 동기화. 이제.txt/.md뿐만 아니라.py/.js/.ts/.json/.yaml/.toml/.ini등 텍스트 파일을 전송에 적합한 텍스트로 자동 변환합니다.report_progress실행 결과를 상급 고문에게 보고하고 다음 반복 단계로 진행합니다.get_status현재 세션 상태, 기록 개수, 모델 및 기록 파일 경로를 확인합니다.
설치 설명
더 자세한 설치 단계는 다음을 참조하세요:
가장 일반적인 설치 절차는 다음과 같습니다.
1. 환경 준비
# 需要 Python 3.10+
python --version
# 进入仓库目录
cd G:\codex\mcp-aurai-server2. 가상 환경 생성 및 의존성 설치
python -m venv venv
venv\Scripts\activate
pip install -e ".[all-dev]"3. Claude Code에 MCP 등록
claude mcp add --scope user --transport stdio aurai-advisor ^
--env AURAI_API_KEY="your-api-key" ^
--env AURAI_BASE_URL="https://api.example.com/v1" ^
--env AURAI_MODEL="gpt-4o" ^
-- "G:\codex\mcp-aurai-server\venv\Scripts\python.exe" "-m" "mcp_aurai.server"설명:
AURAI_BASE_URL은 반드시 OpenAI 호환 인터페이스 주소여야 합니다.현재 버전은
custom방식만 유지하며, 이전의AURAI_PROVIDER는 더 이상 사용하지 않습니다.--scope user는 모든 프로젝트에서 사용 가능하게 설정하여 편리합니다.
4. 설치 검증
claude mcp list
pytest예상 결과:
claude mcp list에서aurai-advisor확인 가능pytest통과
빠른 사용법
시나리오 1: 직접 질문하기
consult_aurai(
problem_type="runtime_error",
error_message="启动时报 KeyError: api_key",
code_snippet="config = load_config()\napi_key = config['api_key']",
context={
"file_path": "src/config.py",
"terminal_output": "Traceback ...",
}
)시나리오 2: 코드 파일 업로드 후 질문하기
sync_context(
operation="incremental",
files=["src/main.py", "config/settings.json", "README.md"],
project_info={
"project_name": "My Project",
"tech_stack": "Python + FastAPI"
}
)
consult_aurai(
problem_type="runtime_error",
error_message="请结合已同步文件帮我排查启动失败"
)주의:
main.py를 수동으로main.txt로 복사할 필요가 없습니다.텍스트 코드 파일은 자동으로 텍스트로 변환되어 전송됩니다.
바이너리 파일은 건너뜁니다.
시나리오 3: 다중 문제 병렬 처리, 세션 격리 사용
consult_aurai(
problem_type="runtime_error",
error_message="问题 A",
session_id="issue-a"
)
consult_aurai(
problem_type="design_issue",
error_message="问题 B",
session_id="issue-b"
)이를 통해 서로 다른 문제 간의 혼선을 방지할 수 있습니다.
sync_context 파일 업로드 규칙
직접 전송되는 파일
.md,.markdown,.mdx.txt각종 코드 및 설정 텍스트 파일, 예:
.py.js.ts.tsx.json.yaml.yml.toml.ini.cfg.env.java.go.rs.cpp.cs
자동 변환되는 파일
.txt/.md는 아니지만 내용이 텍스트인 파일자동으로
.txt또는.md전송 이름 생성내용 앞에 "원본 파일 경로"와 "자동 변환된 전송 이름"이 첨부됨
건너뛰는 파일
이미지
압축 파일
오디오/비디오
실행 파일
명백한 바이너리 내용
파일 목록에 코드와 이미지가 섞여 있는 경우:
코드는 정상적으로 업로드됨
이미지는
skipped_files로 기록됨전체 동기화는 성공으로 처리됨
환경 변수
필수 항목
변수 | 설명 |
| API 키 |
| OpenAI 호환 인터페이스 주소 |
| 모델 이름 |
일반 선택 항목
변수 | 설명 | 기본값 |
| 온도 |
|
| 최대 반복 횟수 |
|
| 세션당 보관할 기록 개수 상한 |
|
| 전체 컨텍스트 윈도우 크기 |
|
| 단일 대용량 파일 메시지 크기 상한 |
|
| 최대 출력 길이 |
|
| 로그 레벨 |
|
| 기록 영속화 여부 |
|
| 기본 세션 기록 파일 경로 |
|
| 기록 파일 잠금 대기 시간(초) |
|
| 기록 요약 활성화 여부 |
|
| 요약 후 보관할 최근 원본 턴 수 |
|
| 요약 트리거 원본 기록 임계값 |
|
현재 버전의 핵심 동작
1. 세션 격리
각
session_id는 고유한 기록을 가짐전달하지 않을 경우 기본값
default사용서로 다른 세션은 다른 기록 파일에 저장되어 혼선을 방지함
2. 기록 요약
오래된 기록은 자동으로 "기록 요약"으로 압축됨
최근 몇 턴과 마지막
sync_context는 원본 그대로 유지하려고 노력함이를 통해 컨텍스트 점유를 줄이고 현재 문제에 대한 공간을 확보함
3. 컨텍스트 윈도우 트리밍
시스템 프롬프트를 우선적으로 유지
마지막
sync_context를 우선적으로 유지최근 기록 턴을 최대한 유지
필요 시 현재 출력 길이를 자동으로 줄여 전체 윈도우 초과 방지
4. 기록 파일 안정성
기록 저장 시 잠금 파일을 사용하여 동시 쓰기 손상 방지
임시 파일에 쓴 후 교체하는 방식을 사용하여 JSON이 중간에 잘리는 현상 방지
테스트
pytest현재 메인 라인에서 다루는 핵심 사항:
기록 삭제 및 영속화
세션 격리
자동 텍스트 변환 업로드
기록 잠금 및 원자적 쓰기
기록 요약
컨텍스트 윈도우 트리밍
문서
자주 묻는 질문
상급 고문이 제가 업로드한 코드 파일을 받지 못하는 이유는 무엇인가요?
이전 버전에서는 수동으로 .txt로 변환해야 했습니다. 현재 버전은 텍스트 파일 자동 변환을 지원합니다.
여전히 받지 못한다면 다음을 먼저 확인하세요:
파일 경로가 존재하는지
파일이 바이너리인지
sync_context반환값의uploaded_files/skipped_files확인
서로 다른 문제가 왜 서로 영향을 주나요?
완벽하게 격리하려면 서로 다른 문제에 다른 session_id를 전달하세요.
기록 파일이 왜 짧아진 것 같나요?
기록 요약 기능이 작동 중이기 때문입니다. 오래된 기록은 요약본으로 압축된 것이며, 삭제된 것이 아니라 컨텍스트를 절약하는 "회의록"으로 대체된 것입니다.
Available Tools
4 toolsconsult_auraiA
请求上级AI的指导(支持交互对齐机制与多轮对话)
这是核心工具,当本地AI遇到编程问题时调用此工具获取上级AI的指导建议。
🔗 相关工具
sync_context:需要上传文档或代码时使用
📄 上传文章、说明文档(.md/.txt)
💻 上传代码文件(避免内容被截断) ⭐ 重要
将
.py/.js/.json等代码文件复制为.txt后上传
report_progress:执行上级 AI 建议后,使用此工具报告进度并获取下一步指导
get_status:查看当前对话状态、迭代次数、配置信息
💡 重要提示:避免内容被截断
如果 code_snippet 或 context 内容过长,请使用 sync_context 上传文件:
# 步骤 1:将代码文件复制为 .txt
shutil.copy('script.py', 'script.txt')
# 步骤 2:上传文件
sync_context(operation='incremental', files=['script.txt'])
# 步骤 3:告诉上级顾问文件已上传
consult_aurai(
error_message='请审查已上传的 script.txt 文件'
)优势:
✅ 避免代码在
context或answers_to_questions字段中被截断✅ 利用文件读取机制,完整传递内容
✅ 支持任意大小的代码文件
[重要] 何时开始新对话?
系统会自动检测,但你也可以手动控制:
自动清空:当上一次对话返回
resolved=true时,系统会自动清空历史手动清空:如果你要讨论一个完全不同的新问题,设置
is_new_question=true
何时设置 is_new_question=true?
[OK] 切换到完全不相关的项目/文件
[OK] 之前的问题已解决,现在遇到全新的问题
[OK] 发现上下文混乱,想重新开始
不要在同一个问题的多轮对话中使用
交互协议
1. 多轮对齐机制
不要期待一次成功:上级顾问可能会认为信息不足,返回反问问题
仔细阅读
questions_to_answer中的每个问题主动搜集信息(读取文件、检查日志、运行命令)
再次调用 此工具,将答案填入
answers_to_questions参数
2. 首次调用
必须提供:
problem_type:问题类型(runtime_error/syntax_error/design_issue/other)error_message:清晰描述问题或错误context:相关上下文(代码片段、环境信息、已尝试的方案)code_snippet:相关代码(如果有)
3. 后续调用(当返回 status="need_info" 时)
必须提供:
answers_to_questions:对上级顾问反问的详细回答保持其他参数不变(除非有新信息)
4. 诚实原则
禁止瞎编:如果不知道答案,诚实说明"未找到相关信息"
禁止臆测:不要在没有证据的情况下假设解决方案
提供具体证据(文件路径、日志内容、错误堆栈)
响应格式
信息不足时 (status="need_info")
{
"status": "need_info",
"questions_to_answer": ["问题1", "问题2"],
"instruction": "请搜集信息并再次调用"
}提供指导时 (status="success")
{
"status": "success",
"analysis": "问题分析",
"guidance": "解决建议",
"action_items": ["步骤1", "步骤2"],
"resolved": false // 是否已完全解决
}问题解决后
当 resolved=true 时,对话历史会自动清空,下次查询将开始新对话。
[自动] 新对话检测
系统会自动检测新问题:
如果上一次对话的
resolved=true,下次调用consult_aurai时会自动清空历史保证每个独立问题都有干净的上下文,避免干扰
[重要] 明确标注新问题(可选参数)
如果你想强制开始一个新对话,可以设置 is_new_question=true:
效果:立即清空所有之前的对话历史
后果:上级AI将无法看到之前的任何上下文
使用场景:
之前的对话已完全无关
想重新开始讨论一个全新的问题
发现上下文混乱,想重置
示例:
# 第一次咨询(问题A)
consult_aurai(problem_type="runtime_error", error_message="...")
# 继续讨论问题A...
consult_aurai(answers_to_questions="...")
# 切换到问题B(标注为新问题,清空历史)
consult_aurai(
problem_type="design_issue",
error_message="...",
is_new_question=True # [注意] 会清空之前关于问题A的所有对话
)| Name | Required | Description | Default |
|---|---|---|---|
| problem_type | Yes | 问题类型: runtime_error, syntax_error, design_issue, other | |
| error_message | Yes | 错误描述 | |
| code_snippet | No | 相关代码片段 | |
| context | No | 上下文信息(支持 JSON 字符串或字典,会自动解析) | |
| attempts_made | No | 已尝试的解决方案 | |
| answers_to_questions | No | 对上级顾问反问的回答(仅在多轮对话时使用) | |
| is_new_question | 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 provided, the description carries the full burden of behavioral disclosure and excels. It describes the multi-round interaction protocol (status='need_info' triggers follow-up calls), honest principle requirements (no fabrication), automatic history clearing when resolved=true, consequences of is_new_question (clears all prior context), and response formats. It adds rich context beyond what the input schema provides.
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 comprehensive but overly long and not front-loaded. While it contains valuable information, it includes extensive formatting (markdown, code blocks, emojis) and repetitive sections (e.g., multiple warnings about truncation, redundant explanations of is_new_question). Some content could be condensed without losing clarity, making it less efficient than ideal.
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 the tool's complexity (multi-round interaction, 7 parameters), no annotations, and the presence of an output schema, the description is exceptionally complete. It covers purpose, usage, behavioral protocols, parameter guidance, sibling tool relationships, and response handling. The output schema existence means return values needn't be explained, and the description fully compensates for the lack of annotations with detailed operational context.
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 schema description coverage is 100%, so the baseline is 3. The description adds significant value by explaining parameter usage in context: it specifies which parameters are required for first calls (problem_type, error_message, context, code_snippet) vs. follow-up calls (answers_to_questions), provides examples for code_snippet/context handling with sync_context, and clarifies the impact of is_new_question. However, it doesn't add deep semantic nuance beyond the schema's descriptions for all parameters.
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 explicitly states the tool's purpose: '请求上级AI的指导' (request guidance from a higher-level AI) and '当本地AI遇到编程问题时调用此工具获取上级AI的指导建议' (call this tool when the local AI encounters programming problems to get guidance from a higher-level AI). It clearly distinguishes from siblings by explaining this is the '核心工具' (core tool) for obtaining AI guidance, while sibling tools handle context synchronization, progress reporting, and status checking.
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 provides extensive usage guidelines, including when to use this tool ('当本地AI遇到编程问题时'), when to use sibling tools instead (e.g., use sync_context for uploading files to avoid truncation, report_progress after executing suggestions), and explicit alternatives. It also details when to set parameters like is_new_question and provides scenarios for manual vs. automatic context clearing.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_statusB
获取当前状态
返回当前对话状态、迭代次数、配置信息等。
返回内容:conversation_history_count(对话历史数量)、max_iterations(最大迭代次数)、max_history(最大历史条数)、provider(AI提供商)、model(模型名称)
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
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 of behavioral disclosure. It describes what the tool returns (conversation state, iteration count, configuration) and lists specific return fields, which adds useful context about the tool's behavior. However, it doesn't mention whether this is a read-only operation, if it requires authentication, or any rate limits—important details for a status-checking tool with zero annotation coverage.
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 appropriately sized and front-loaded: the first line states the purpose clearly, followed by details on return content. The use of a separator (---) and bullet points for return fields improves readability. However, the inclusion of both Chinese and English text slightly reduces efficiency, and some redundancy exists (e.g., stating return content in two ways).
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 the tool's simplicity (0 parameters, no annotations, but has an output schema), the description is reasonably complete. It explains what the tool does and details the return values, which compensates for the lack of annotations. Since an output schema exists, the description doesn't need to fully explain return values, but it still provides a helpful overview. For a status-retrieval tool, this is adequate though not 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?
The tool has 0 parameters with 100% schema description coverage (empty schema), so the baseline is 4 as per the rules for zero parameters. The description appropriately doesn't discuss parameters since none exist, and it focuses on the return values instead, which is correct given the context.
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 purpose: '获取当前状态' (get current status) and specifies it returns conversation state, iteration count, and configuration information. This is a specific verb+resource combination that distinguishes it from sibling tools like consult_aurai, report_progress, and sync_context, which appear to perform different functions. However, it doesn't explicitly contrast with siblings beyond implying different functionality.
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 provides no guidance on when to use this tool versus alternatives. It doesn't mention any prerequisites, appropriate contexts, or comparisons with sibling tools like consult_aurai or report_progress. The agent must infer usage from the purpose alone, which is insufficient for optimal tool selection.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
report_progressA
报告执行进度,请求下一步指导
在执行了上级AI的建议后,调用此工具报告结果,获取下一步指导。
使用场景:执行上级 AI 建议后,报告执行结果并获取后续指导 参数:actions_taken(已执行的行动)、result(success/failed/partial)、new_error(新错误)、feedback(反馈)
| Name | Required | Description | Default |
|---|---|---|---|
| actions_taken | Yes | 已执行的行动 | |
| result | Yes | 执行结果: success, failed, partial | |
| new_error | No | 新的错误信息 | |
| feedback | 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 provided, the description carries the full burden of behavioral disclosure. It effectively describes the tool's purpose and workflow (reporting progress and requesting guidance), though it doesn't specify technical details like response format, rate limits, or authentication requirements. However, it clearly communicates the tool's interactive nature and expected usage pattern.
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 well-structured and appropriately sized. It opens with a clear purpose statement, provides usage guidelines, and includes a formatted section with usage scenarios and parameters. Every sentence serves a purpose with no redundancy or wasted words.
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 the tool's moderate complexity (4 parameters, interactive workflow) and the presence of an output schema (which handles return values), the description is largely complete. It covers purpose, usage context, and parameters adequately. The main gap is lack of behavioral details like error handling or response structure, but the output schema mitigates this.
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 100%, so the schema already documents all parameters thoroughly. The description lists parameters in a section but doesn't add meaningful semantic context beyond what's in the schema (e.g., explaining how 'result' influences guidance or what constitutes good 'feedback'). This meets the baseline for high schema coverage.
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 purpose with specific verbs ('报告执行进度' - report execution progress, '请求下一步指导' - request next-step guidance) and distinguishes it from siblings like consult_aurai (consultation), get_status (status retrieval), and sync_context (context synchronization). It explicitly defines the tool's role in reporting results after executing superior AI suggestions.
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 provides explicit usage guidelines: '在执行了上级AI的建议后,调用此工具报告结果,获取下一步指导' (After executing superior AI suggestions, call this tool to report results and get next-step guidance). It clearly defines when to use this tool (post-execution reporting) versus alternatives like consult_aurai (for consultation before execution) or get_status (for status checking without guidance).
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
sync_contextA
同步代码上下文(支持上传 .md 和 .txt 文件,避免内容被截断)
在第一次调用或上下文发生重大变化时使用,让上级AI了解当前项目的整体情况。
🎯 典型使用场景
场景 1:上传文章供上级顾问评审
sync_context(
operation='full_sync',
files=['文章.md'],
project_info={
'task': 'article_review',
'target_platform': 'GLM Coding 知识库'
}
)
consult_aurai(
problem_type='other',
error_message='请评审以下投稿文章...',
context={'请查看已上传的文章文件': '已通过 sync_context 上传'}
)场景 2:上传代码文件(避免内容被截断)⭐ 重要
# 问题:代码太长,在 context 字段中可能被截断
# 解决:将代码转换为 .txt 文件后上传
import shutil
# 步骤 1:将代码文件复制为 .txt
shutil.copy('src/main.py', 'src/main.txt')
# 步骤 2:上传文件
sync_context(
operation='incremental',
files=['src/main.txt'],
project_info={
'description': '需要调试的代码',
'language': 'Python'
}
)
# 步骤 3:告诉上级顾问文件已上传
consult_aurai(
problem_type='runtime_error',
error_message='请审查已上传的 src/main.txt 文件,帮我找出bug',
context={
'file_location': '已通过 sync_context 上传',
'expected_behavior': '应该输出...',
'actual_behavior': '实际输出...'
}
)优势:
✅ 避免代码在
context或answers_to_questions字段中被截断✅ 利用 sync_context 的文件读取机制,完整传递内容
✅ 上级顾问可以完整读取代码文件
场景 3:项目首次初始化
sync_context(
operation='full_sync',
files=['README.md', 'docs/说明文档.md'],
project_info={
'project_name': 'My Project',
'tech_stack': 'Python + FastAPI'
}
)[注意] 文件上传限制
files 参数只支持 .txt 和 .md 文件!
[OK] 支持:
README.md,docs.txt,notes.md等文本和Markdown文件不支持:
.py,.js,.json,.yaml等代码文件
使用场景
full_sync: 完整同步,适合首次调用或项目重大变更
incremental: 增量同步,适合添加新文件或更新
clear: 清空对话历史
Token优化
当 project_info 中的单个字段超过 800 tokens 时,会自动:
缓存到临时文件
在对话历史中记录文件路径
发送给上级AI时仍会读取完整内容
参数说明
operation: 操作类型(full_sync/incremental/clear)files: 文件路径列表,只能是 .txt 或 .md 文件project_info: 项目信息字典,可包含任意字段
| Name | Required | Description | Default |
|---|---|---|---|
| operation | Yes | 操作类型: full_sync(完整同步), incremental(增量添加), clear(清空历史) | |
| files | No | **⚠️ 只支持 .txt 和 .md 文件!** 如需上传代码文件(.py/.js/.json等),必须先复制为 .txt。示例: shutil.copy('script.py', 'script.txt') 然后传 files=['script.txt']。文件路径列表(支持 JSON 字符串或列表,会自动解析) | |
| project_info | No | 项目信息字典,可包含项目名称、技术栈、任务描述等任意字段(支持 JSON 字符串或字典,会自动解析) |
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 of behavioral disclosure. It effectively describes key behaviors: file type restrictions (.txt and .md only), token optimization (caching for fields >800 tokens), and the three operation modes (full_sync, incremental, clear) with their purposes. However, it doesn't mention potential side effects like whether files are stored persistently, if there are rate limits, or authentication requirements, leaving some gaps for a mutation 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 well-structured with sections for typical scenarios, notes, and parameter explanations, but it is overly verbose. The extensive code examples and scenario details could be condensed; not every sentence earns its place as some repetition occurs (e.g., file restrictions mentioned multiple times). It's front-loaded with the core purpose, but the length may reduce scanability.
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 the tool's complexity (mutation with file handling) and rich schema (100% coverage, output schema exists), the description is highly complete. It covers purpose, usage guidelines, behavioral traits, parameter semantics with examples, and operational details. The output schema handles return values, so the description appropriately focuses on input and behavior, leaving no significant gaps for agent understanding.
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 100%, so the schema already documents all parameters. The description adds significant value beyond the schema by explaining the rationale behind file restrictions (to avoid truncation), providing concrete usage examples with code snippets, and detailing token optimization behavior. However, it doesn't fully explain the semantics of 'project_info' beyond stating it can contain arbitrary fields, missing guidance on typical or required fields.
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 purpose: '同步代码上下文(支持上传 .md 和 .txt 文件,避免内容被截断)' - to sync code context by uploading .md and .txt files to avoid truncation. It specifies the verb (sync/upload), resource (code context via files), and distinguishes from siblings by focusing on file-based context management rather than consultation, status checking, or progress reporting.
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 provides explicit guidance on when to use this tool: '在第一次调用或上下文发生重大变化时使用' (use on first call or when context changes significantly). It includes detailed scenarios (article review, code upload, project initialization) with concrete examples and contrasts with alternatives by noting that code should be uploaded here instead of placed in 'context' or 'answers_to_questions' fields of other tools to avoid truncation.
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.
4 tool updates
v2.2.0- First observed
consult_aurai - First observed
get_status - First observed
report_progress - First observed
sync_context
TDQS
Scored across 4 tools
Each tool has a distinct, non-overlapping purpose: consult_aurai for core advice, sync_context for file uploads, report_progress for progress updates, and get_status for status checks. The descriptions clearly differentiate their roles, with no ambiguity in when to use each tool.
All tool names follow a consistent snake_case pattern with clear verb_noun structures: consult_aurai, sync_context, report_progress, get_status. This uniformity makes the set predictable and easy to understand for an agent.
With 4 tools, this server is well-scoped for its purpose of providing AI-guided problem-solving. Each tool serves a specific function in the workflow (consult, sync, report, status), and there are no extraneous or missing tools for the domain.
The tool set fully covers the intended workflow: initiating consultations (consult_aurai), providing context (sync_context), reporting progress (report_progress), and checking status (get_status). There are no gaps; agents can handle the entire lifecycle from problem submission to resolution.
Maintenance
Related MCP Connectors
MCP server for AI dialogue using various LLM models via AceDataCloud
Hosted MCP server connecting claude.ai, ChatGPT and other AI apps to your own computer
An MCP server that gives your AI access to the source code and docs of all public github repos
Driflyte MCP server which lets AI assistants query topic-specific knowledge from web and GitHub.
Related MCP Servers
- AlicenseNot gradedqualityFmaintenanceAn MCP server that orchestrates AI coding assistants (Claude Code CLI and Gemini CLI) to perform complex programming tasks autonomously, allowing remote control of your local development environment from anywhere.11 npm140MIT
- AlicenseNot gradedqualityDmaintenanceA local-first MCP server for coordinating parallel AI coding sessions with tools like Claude Code and Codex in a single repository.2MIT
- AlicenseNot gradedqualityDmaintenanceA Model Context Protocol (MCP) server that turns multiple AI coding agents into a coordinated team that chats, debates, remembers, audits security, and works in parallel on the same project.MIT
- FlicenseNot gradedqualityAmaintenanceA local MCP server that connects AI coding agents like Claude, Codex, and Gemini, enabling task routing, cross-model debates, and token-efficient context sharing without external APIs.17-