Summary
Upstream semble #247 (9218491) added a per-call content parameter to the MCP search and find_related tools (code | docs | config | all, default = server's configured content). csp's MCP tools have no content argument; the content filter is fixed at server start.
Upstream
mcp.py: content: ContentSelection | None = None on both tools; _resolve_content_selection maps None → server default, "all" → every ContentType.
_IndexCache key is now (source_key, tuple[ContentType]); get(source, ref, content); _evict_if_stale / evict take the tuple key.
cache.py: find_index_from_cache_folder(path, content) stores non-code scopes at index-<scope> (e.g. index-code-docs); clear index/clear orphans glob */index*.
- README MCP tool table updated.
csp status
crates/csp/src/bin/csp/mcp_server.rs: SearchParams { query, repo, top_k }, FindRelatedParams { file_path, line, repo, top_k } — no content.
crates/csp/src/mcp.rs::IndexCache holds a single content: Vec<ContentType> and keys entries by source only.
- Disk cache already keys on content (
indexing/cache.rs::resolve_cache_dir hashes sourceId + content + ref), so no on-disk layout change is needed.
Tasks
Refs
Summary
Upstream semble #247 (
9218491) added a per-callcontentparameter to the MCPsearchandfind_relatedtools (code | docs | config | all, default = server's configured content). csp's MCP tools have nocontentargument; the content filter is fixed at server start.Upstream
mcp.py:content: ContentSelection | None = Noneon both tools;_resolve_content_selectionmapsNone→ server default,"all"→ everyContentType._IndexCachekey is now(source_key, tuple[ContentType]);get(source, ref, content);_evict_if_stale/evicttake the tuple key.cache.py:find_index_from_cache_folder(path, content)stores non-code scopes atindex-<scope>(e.g.index-code-docs);clear index/clear orphansglob*/index*.csp status
crates/csp/src/bin/csp/mcp_server.rs:SearchParams { query, repo, top_k },FindRelatedParams { file_path, line, repo, top_k }— nocontent.crates/csp/src/mcp.rs::IndexCacheholds a singlecontent: Vec<ContentType>and keys entries by source only.indexing/cache.rs::resolve_cache_dirhashessourceId + content + ref), so no on-disk layout change is needed.Tasks
content: Option<ContentSelection>to both tool param structs (schemars enumcode|docs|config|all), default = server--content.IndexCachekey →(source, normalized content); threadcontentthroughget/evict/ revalidation.SERVER_INSTRUCTIONS, README.md + README.ko.md MCP tool table,.please/docs/references/semble.md§4.16.contentyields distinct cache entries.Refs
9218491)949559b..6bbbd32, 2026-09-03