OSS libs in your stack, really used: source, tests, callers. C#, Java, TS, Python, Rust, PHP+.
Maintain this server? Claim it
Call this server's tools from your browser. Nothing to install.
Requests go through mcptry because browsers can't call most MCP servers directly. Header values are sent to the server for that request only and are never stored or logged.
Tool list from our last check. Connect live to refresh it.
Find direct callees (methods called by) a symbol in a project. Navigate step-by-step by calling xmp4_callees again on interesting results.
Project id: 'repo/project' or 'repo/project/language'. Case-insensitive prefix match. Append '/Python'|'/CSharp'|'/Java'|etc. only to disambiguate multi-language projects (e.g. 'django/Django/Python' vs 'django/Django/JavaScript'). 1 match → proceeds; N → warning lists candidates; 0 → do NOT iterate guesses, call xmp4_projects(query=...) once then retry.
Symbol name
Include docs: none (default) | summary | full (xmp4_info only)
Page number (1-based, default 1; ignored by xmp4_info/xmp4_source)
File path to disambiguate
Results per page (default 20, max 100)
Output format: Compact (default) or Verbose
This tool isn't marked read-only, so it may change something on the server or in an account you connected.
Find direct callees (methods called by) a symbol in a project. Navigate step-by-step by calling xmp4_callees again on interesting results.
| Argument | Type | Description |
|---|---|---|
| docs | string | Include docs: none (default) | summary | full (xmp4_info only) |
| page | integer | Page number (1-based, default 1; ignored by xmp4_info/xmp4_source) |
| project* | string | Project id: 'repo/project' or 'repo/project/language'. Case-insensitive prefix match. Append '/Python'|'/CSharp'|'/Java'|etc. only to disambiguate multi-language projects (e.g. 'django/Django/Python' vs 'django/Django/JavaScript'). 1 match → proceeds; N → warning lists candidates; 0 → do NOT iterate guesses, call xmp4_projects(query=...) once then retry. |
| file_path | string | File path to disambiguate |
| page_size | integer | Results per page (default 20, max 100) |
| symbol_name* | string | Symbol name |
| output_format | string | Output format: Compact (default) or Verbose |
{
"type": "object",
"title": "SymbolParams",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"project",
"symbol_name"
],
"properties": {
"docs": {
"type": "string",
"nullable": true,
"description": "Include docs: none (default) | summary | full (xmp4_info only)"
},
"page": {
"type": "integer",
"format": "uint32",
"default": null,
"minimum": 0,
"nullable": true,
"description": "Page number (1-based, default 1; ignored by xmp4_info/xmp4_source)"
},
"project": {
"type": "string",
"description": "Project id: 'repo/project' or 'repo/project/language'. Case-insensitive prefix match. Append '/Python'|'/CSharp'|'/Java'|etc. only to disambiguate multi-language projects (e.g. 'django/Django/Python' vs 'django/Django/JavaScript'). 1 match → proceeds; N → warning lists candidates; 0 → do NOT iterate guesses, call xmp4_projects(query=...) once then retry."
},
"file_path": {
"type": "string",
"nullable": true,
"description": "File path to disambiguate"
},
"page_size": {
"type": "integer",
"format": "uint32",
"default": null,
"minimum": 0,
"nullable": true,
"description": "Results per page (default 20, max 100)"
},
"symbol_name": {
"type": "string",
"description": "Symbol name"
},
"output_format": {
"type": "string",
"nullable": true,
"description": "Output format: Compact (default) or Verbose"
}
}
}Find direct callers of a symbol in a project. Navigate step-by-step by calling xmp4_callers again on interesting results.
| Argument | Type | Description |
|---|---|---|
| docs | string | Include docs: none (default) | summary | full (xmp4_info only) |
| page | integer | Page number (1-based, default 1; ignored by xmp4_info/xmp4_source) |
| project* | string | Project id: 'repo/project' or 'repo/project/language'. Case-insensitive prefix match. Append '/Python'|'/CSharp'|'/Java'|etc. only to disambiguate multi-language projects (e.g. 'django/Django/Python' vs 'django/Django/JavaScript'). 1 match → proceeds; N → warning lists candidates; 0 → do NOT iterate guesses, call xmp4_projects(query=...) once then retry. |
| file_path | string | File path to disambiguate |
| page_size | integer | Results per page (default 20, max 100) |
| symbol_name* | string | Symbol name |
| output_format | string | Output format: Compact (default) or Verbose |
{
"type": "object",
"title": "SymbolParams",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"project",
"symbol_name"
],
"properties": {
"docs": {
"type": "string",
"nullable": true,
"description": "Include docs: none (default) | summary | full (xmp4_info only)"
},
"page": {
"type": "integer",
"format": "uint32",
"default": null,
"minimum": 0,
"nullable": true,
"description": "Page number (1-based, default 1; ignored by xmp4_info/xmp4_source)"
},
"project": {
"type": "string",
"description": "Project id: 'repo/project' or 'repo/project/language'. Case-insensitive prefix match. Append '/Python'|'/CSharp'|'/Java'|etc. only to disambiguate multi-language projects (e.g. 'django/Django/Python' vs 'django/Django/JavaScript'). 1 match → proceeds; N → warning lists candidates; 0 → do NOT iterate guesses, call xmp4_projects(query=...) once then retry."
},
"file_path": {
"type": "string",
"nullable": true,
"description": "File path to disambiguate"
},
"page_size": {
"type": "integer",
"format": "uint32",
"default": null,
"minimum": 0,
"nullable": true,
"description": "Results per page (default 20, max 100)"
},
"symbol_name": {
"type": "string",
"description": "Symbol name"
},
"output_format": {
"type": "string",
"nullable": true,
"description": "Output format: Compact (default) or Verbose"
}
}
}List external dependencies of a project.
| Argument | Type | Description |
|---|---|---|
| page | integer | Page number (1-based, default 1) |
| project* | string | Project id: 'repo/project' or 'repo/project/language'. Case-insensitive prefix match. Append '/Python'|'/CSharp'|'/Java'|etc. only to disambiguate multi-language projects (e.g. 'django/Django/Python' vs 'django/Django/JavaScript'). 1 match → proceeds; N → warning lists candidates; 0 → do NOT iterate guesses, call xmp4_projects(query=...) once then retry. |
| page_size | integer | Results per page (default 20, max 100) |
| output_format | string | Output format: Compact (default) or Verbose |
{
"type": "object",
"title": "RepoParams",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"project"
],
"properties": {
"page": {
"type": "integer",
"format": "uint32",
"default": null,
"minimum": 0,
"nullable": true,
"description": "Page number (1-based, default 1)"
},
"project": {
"type": "string",
"description": "Project id: 'repo/project' or 'repo/project/language'. Case-insensitive prefix match. Append '/Python'|'/CSharp'|'/Java'|etc. only to disambiguate multi-language projects (e.g. 'django/Django/Python' vs 'django/Django/JavaScript'). 1 match → proceeds; N → warning lists candidates; 0 → do NOT iterate guesses, call xmp4_projects(query=...) once then retry."
},
"page_size": {
"type": "integer",
"format": "uint32",
"default": null,
"minimum": 0,
"nullable": true,
"description": "Results per page (default 20, max 100)"
},
"output_format": {
"type": "string",
"nullable": true,
"description": "Output format: Compact (default) or Verbose"
}
}
}Server-side regex text search over indexed project source files. Free tier: requires file_path (single file). Premium tier (XMP4_PREMIUM_GREP_WALK=true): allows file_glob multi-file walk. Prefer xmp4_tests_for/xmp4_usages for SCIP symbols — grep is for text not indexed (comments, literals, config keys).
| Argument | Type | Description |
|---|---|---|
| page | integer | Page number (1-based, default 1) |
| pattern* | string | Regex pattern (case-insensitive by default) |
| project* | string | Project id: 'repo/project' or 'repo/project/language'. Case-insensitive prefix match. Append '/Python'|'/CSharp'|'/Java'|etc. only to disambiguate multi-language projects (e.g. 'django/Django/Python' vs 'django/Django/JavaScript'). 1 match → proceeds; N → warning lists candidates; 0 → do NOT iterate guesses, call xmp4_projects(query=...) once then retry. |
| file_glob | string | Optional file glob for multi-file walk (premium tier). Set XMP4_PREMIUM_GREP_WALK=true to enable. |
| file_path | string | Single-file grep target, repo-relative (e.g. 'src/foo.rs'). Required in free tier. |
| page_size | integer | Results per page (default 20, max 100) |
| max_results | integer | Maximum number of hits to collect before pagination (default 50, max 1000) |
Usage guide for xmp4 tools — read this first to learn the correct workflow
No arguments.
{
"type": "object",
"properties": {}
}Get type hierarchy (base, interfaces, derived) for a symbol in a project.
| Argument | Type | Description |
|---|---|---|
| docs | string | Include docs: none (default) | summary | full (xmp4_info only) |
| page | integer | Page number (1-based, default 1; ignored by xmp4_info/xmp4_source) |
| project* | string | Project id: 'repo/project' or 'repo/project/language'. Case-insensitive prefix match. Append '/Python'|'/CSharp'|'/Java'|etc. only to disambiguate multi-language projects (e.g. 'django/Django/Python' vs 'django/Django/JavaScript'). 1 match → proceeds; N → warning lists candidates; 0 → do NOT iterate guesses, call xmp4_projects(query=...) once then retry. |
| file_path | string | File path to disambiguate |
| page_size | integer | Results per page (default 20, max 100) |
| symbol_name* | string | Symbol name |
| output_format | string | Output format: Compact (default) or Verbose |
{
"type": "object",
"title": "SymbolParams",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"project",
"symbol_name"
],
"properties": {
"docs": {
"type": "string",
"nullable": true,
"description": "Include docs: none (default) | summary | full (xmp4_info only)"
},
"page": {
"type": "integer",
"format": "uint32",
"default": null,
"minimum": 0,
"nullable": true,
"description": "Page number (1-based, default 1; ignored by xmp4_info/xmp4_source)"
},
"project": {
"type": "string",
"description": "Project id: 'repo/project' or 'repo/project/language'. Case-insensitive prefix match. Append '/Python'|'/CSharp'|'/Java'|etc. only to disambiguate multi-language projects (e.g. 'django/Django/Python' vs 'django/Django/JavaScript'). 1 match → proceeds; N → warning lists candidates; 0 → do NOT iterate guesses, call xmp4_projects(query=...) once then retry."
},
"file_path": {
"type": "string",
"nullable": true,
"description": "File path to disambiguate"
},
"page_size": {
"type": "integer",
"format": "uint32",
"default": null,
"minimum": 0,
"nullable": true,
"description": "Results per page (default 20, max 100)"
},
"symbol_name": {
"type": "string",
"description": "Symbol name"
},
"output_format": {
"type": "string",
"nullable": true,
"description": "Output format: Compact (default) or Verbose"
}
}
}Get detailed information about a symbol in a project.
| Argument | Type | Description |
|---|---|---|
| docs | string | Include docs: none (default) | summary | full (xmp4_info only) |
| page | integer | Page number (1-based, default 1; ignored by xmp4_info/xmp4_source) |
| project* | string | Project id: 'repo/project' or 'repo/project/language'. Case-insensitive prefix match. Append '/Python'|'/CSharp'|'/Java'|etc. only to disambiguate multi-language projects (e.g. 'django/Django/Python' vs 'django/Django/JavaScript'). 1 match → proceeds; N → warning lists candidates; 0 → do NOT iterate guesses, call xmp4_projects(query=...) once then retry. |
| file_path | string | File path to disambiguate |
| page_size | integer | Results per page (default 20, max 100) |
| symbol_name* | string | Symbol name |
| output_format | string | Output format: Compact (default) or Verbose |
{
"type": "object",
"title": "SymbolParams",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"project",
"symbol_name"
],
"properties": {
"docs": {
"type": "string",
"nullable": true,
"description": "Include docs: none (default) | summary | full (xmp4_info only)"
},
"page": {
"type": "integer",
"format": "uint32",
"default": null,
"minimum": 0,
"nullable": true,
"description": "Page number (1-based, default 1; ignored by xmp4_info/xmp4_source)"
},
"project": {
"type": "string",
"description": "Project id: 'repo/project' or 'repo/project/language'. Case-insensitive prefix match. Append '/Python'|'/CSharp'|'/Java'|etc. only to disambiguate multi-language projects (e.g. 'django/Django/Python' vs 'django/Django/JavaScript'). 1 match → proceeds; N → warning lists candidates; 0 → do NOT iterate guesses, call xmp4_projects(query=...) once then retry."
},
"file_path": {
"type": "string",
"nullable": true,
"description": "File path to disambiguate"
},
"page_size": {
"type": "integer",
"format": "uint32",
"default": null,
"minimum": 0,
"nullable": true,
"description": "Results per page (default 20, max 100)"
},
"symbol_name": {
"type": "string",
"description": "Symbol name"
},
"output_format": {
"type": "string",
"nullable": true,
"description": "Output format: Compact (default) or Verbose"
}
}
}Get outline (all symbols) for a file in a project.
| Argument | Type | Description |
|---|---|---|
| page | integer | Page number (1-based, default 1) |
| project* | string | Project id: 'repo/project' or 'repo/project/language'. Case-insensitive prefix match. Append '/Python'|'/CSharp'|'/Java'|etc. only to disambiguate multi-language projects (e.g. 'django/Django/Python' vs 'django/Django/JavaScript'). 1 match → proceeds; N → warning lists candidates; 0 → do NOT iterate guesses, call xmp4_projects(query=...) once then retry. |
| file_path* | string | File path |
| page_size | integer | Results per page (default 20, max 100) |
| output_format | string | Output format: Compact (default) or Verbose |
{
"type": "object",
"title": "OutlineParams",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"project",
"file_path"
],
"properties": {
"page": {
"type": "integer",
"format": "uint32",
"default": null,
"minimum": 0,
"nullable": true,
"description": "Page number (1-based, default 1)"
},
"project": {
"type": "string",
"description": "Project id: 'repo/project' or 'repo/project/language'. Case-insensitive prefix match. Append '/Python'|'/CSharp'|'/Java'|etc. only to disambiguate multi-language projects (e.g. 'django/Django/Python' vs 'django/Django/JavaScript'). 1 match → proceeds; N → warning lists candidates; 0 → do NOT iterate guesses, call xmp4_projects(query=...) once then retry."
},
"file_path": {
"type": "string",
"description": "File path"
},
"page_size": {
"type": "integer",
"format": "uint32",
"default": null,
"minimum": 0,
"nullable": true,
"description": "Results per page (default 20, max 100)"
},
"output_format": {
"type": "string",
"nullable": true,
"description": "Output format: Compact (default) or Verbose"
}
}
}Search and browse projects by language and name. Use this first to discover projects, then use other tools with the repo name.
| Argument | Type | Description |
|---|---|---|
| page | integer | Page number (1-based, default 1) |
| repo | string | Filter by repository name |
| query | string | Search by project name (case-insensitive contains) |
| language | string | Filter by language (e.g., Python, TypeScript, CSharp) |
| page_size | integer | Results per page (default 20, max 100) |
{
"type": "object",
"title": "ProjectsParams",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"properties": {
"page": {
"type": "integer",
"format": "uint32",
"default": null,
"minimum": 0,
"nullable": true,
"description": "Page number (1-based, default 1)"
},
"repo": {
"type": "string",
"nullable": true,
"description": "Filter by repository name"
},
"query": {
"type": "string",
"nullable": true,
"description": "Search by project name (case-insensitive contains)"
},
"language": {
"type": "string",
"nullable": true,
"description": "Filter by language (e.g., Python, TypeScript, CSharp)"
},
"page_size": {
"type": "integer",
"format": "uint32",
"default": null,
"minimum": 0,
"nullable": true,
"description": "Results per page (default 20, max 100)"
}
}
}Search symbols in a project. Use xmp4_projects first to find the project identifier.
| Argument | Type | Description |
|---|---|---|
| kind | string | Filter by kind: Class, Method, Function, etc. |
| page | integer | Page number (1-based, default 1) |
| query* | string | Search query (symbol name or pattern) |
| project* | string | Project id: 'repo/project' or 'repo/project/language'. Case-insensitive prefix match. Append '/Python'|'/CSharp'|'/Java'|etc. only to disambiguate multi-language projects (e.g. 'django/Django/Python' vs 'django/Django/JavaScript'). 1 match → proceeds; N → warning lists candidates; 0 → do NOT iterate guesses, call xmp4_projects(query=...) once then retry. |
| page_size | integer | Results per page (default 20, max 100) |
| max_results | integer | Maximum results to return (default: 50). Kept as per-page upper bound alongside page_size. |
| output_format | string | Output format: Compact (default) or Verbose |
{
"type": "object",
"title": "SearchParams",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"project",
"query"
],
"properties": {
"kind": {
"type": "string",
"nullable": true,
"description": "Filter by kind: Class, Method, Function, etc."
},
"page": {
"type": "integer",
"format": "uint32",
"default": null,
"minimum": 0,
"nullable": true,
"description": "Page number (1-based, default 1)"
},
"query": {
"type": "string",
"description": "Search query (symbol name or pattern)"
},
"project": {
"type": "string",
"description": "Project id: 'repo/project' or 'repo/project/language'. Case-insensitive prefix match. Append '/Python'|'/CSharp'|'/Java'|etc. only to disambiguate multi-language projects (e.g. 'django/Django/Python' vs 'django/Django/JavaScript'). 1 match → proceeds; N → warning lists candidates; 0 → do NOT iterate guesses, call xmp4_projects(query=...) once then retry."
},
"page_size": {
"type": "integer",
"format": "uint32",
"default": null,
"minimum": 0,
"nullable": true,
"description": "Results per page (default 20, max 100)"
},
"max_results": {
"type": "integer",
"format": "uint",
"default": null,
"minimum": 0,
"nullable": true,
"description": "Maximum results to return (default: 50). Kept as per-page upper bound alongside page_size."
},
"output_format": {
"type": "string",
"nullable": true,
"description": "Output format: Compact (default) or Verbose"
}
}
}Get server information, version, and capabilities
No arguments.
{
"type": "object",
"properties": {}
}Extract source code for a symbol in a project.
| Argument | Type | Description |
|---|---|---|
| docs | string | Include docs: none (default) | summary | full (xmp4_info only) |
| page | integer | Page number (1-based, default 1; ignored by xmp4_info/xmp4_source) |
| project* | string | Project id: 'repo/project' or 'repo/project/language'. Case-insensitive prefix match. Append '/Python'|'/CSharp'|'/Java'|etc. only to disambiguate multi-language projects (e.g. 'django/Django/Python' vs 'django/Django/JavaScript'). 1 match → proceeds; N → warning lists candidates; 0 → do NOT iterate guesses, call xmp4_projects(query=...) once then retry. |
| file_path | string | File path to disambiguate |
| page_size | integer | Results per page (default 20, max 100) |
| symbol_name* | string | Symbol name |
| output_format | string | Output format: Compact (default) or Verbose |
{
"type": "object",
"title": "SymbolParams",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"project",
"symbol_name"
],
"properties": {
"docs": {
"type": "string",
"nullable": true,
"description": "Include docs: none (default) | summary | full (xmp4_info only)"
},
"page": {
"type": "integer",
"format": "uint32",
"default": null,
"minimum": 0,
"nullable": true,
"description": "Page number (1-based, default 1; ignored by xmp4_info/xmp4_source)"
},
"project": {
"type": "string",
"description": "Project id: 'repo/project' or 'repo/project/language'. Case-insensitive prefix match. Append '/Python'|'/CSharp'|'/Java'|etc. only to disambiguate multi-language projects (e.g. 'django/Django/Python' vs 'django/Django/JavaScript'). 1 match → proceeds; N → warning lists candidates; 0 → do NOT iterate guesses, call xmp4_projects(query=...) once then retry."
},
"file_path": {
"type": "string",
"nullable": true,
"description": "File path to disambiguate"
},
"page_size": {
"type": "integer",
"format": "uint32",
"default": null,
"minimum": 0,
"nullable": true,
"description": "Results per page (default 20, max 100)"
},
"symbol_name": {
"type": "string",
"description": "Symbol name"
},
"output_format": {
"type": "string",
"nullable": true,
"description": "Output format: Compact (default) or Verbose"
}
}
}LSP-style position→symbol lookup. Given (file_path, line, column) returns the symbol whose occurrence covers that cursor position. line is 1-based; column is 0-based. Use after xmp4_outline/xmp4_view when you know coordinates and want the canonical symbol.
| Argument | Type | Description |
|---|---|---|
| line | integer | Line number (1-based) |
| column | integer | Column number (0-based, default 0 = beginning of line) |
| project* | string | Project id: 'repo/project' or 'repo/project/language'. Case-insensitive prefix match. Append '/Python'|'/CSharp'|'/Java'|etc. only to disambiguate multi-language projects (e.g. 'django/Django/Python' vs 'django/Django/JavaScript'). 1 match → proceeds; N → warning lists candidates; 0 → do NOT iterate guesses, call xmp4_projects(query=...) once then retry. |
| file_path* | string | File path inside the project, relative to repo root |
{
"type": "object",
"title": "SymbolAtParams",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"project",
"file_path"
],
"properties": {
"line": {
"type": "integer",
"format": "uint32",
"default": null,
"minimum": 0,
"nullable": true,
"description": "Line number (1-based)"
},
"column": {
"type": "integer",
"format": "uint32",
"default": null,
"minimum": 0,
"nullable": true,
"description": "Column number (0-based, default 0 = beginning of line)"
},
"project": {
"type": "string",
"description": "Project id: 'repo/project' or 'repo/project/language'. Case-insensitive prefix match. Append '/Python'|'/CSharp'|'/Java'|etc. only to disambiguate multi-language projects (e.g. 'django/Django/Python' vs 'django/Django/JavaScript'). 1 match → proceeds; N → warning lists candidates; 0 → do NOT iterate guesses, call xmp4_projects(query=...) once then retry."
},
"file_path": {
"type": "string",
"description": "File path inside the project, relative to repo root"
}
}
}Find direct tests that exercise a given symbol (direct callers filtered to test-file candidates per language pattern: CSharp/Java/PHP: *Test(s).<ext>; Python: test_*.py / *_test.py; TypeScript/JavaScript: *.spec/test.{ts,js}; Rust: *_tests.rs / tests/; etc.).
| Argument | Type | Description |
|---|---|---|
| docs | string | Include docs: none (default) | summary | full (xmp4_info only) |
| page | integer | Page number (1-based, default 1; ignored by xmp4_info/xmp4_source) |
| project* | string | Project id: 'repo/project' or 'repo/project/language'. Case-insensitive prefix match. Append '/Python'|'/CSharp'|'/Java'|etc. only to disambiguate multi-language projects (e.g. 'django/Django/Python' vs 'django/Django/JavaScript'). 1 match → proceeds; N → warning lists candidates; 0 → do NOT iterate guesses, call xmp4_projects(query=...) once then retry. |
| file_path | string | File path to disambiguate |
| page_size | integer | Results per page (default 20, max 100) |
| symbol_name* | string | Symbol name |
| output_format | string | Output format: Compact (default) or Verbose |
Find all usages/references of a symbol in a project.
| Argument | Type | Description |
|---|---|---|
| docs | string | Include docs: none (default) | summary | full (xmp4_info only) |
| page | integer | Page number (1-based, default 1; ignored by xmp4_info/xmp4_source) |
| project* | string | Project id: 'repo/project' or 'repo/project/language'. Case-insensitive prefix match. Append '/Python'|'/CSharp'|'/Java'|etc. only to disambiguate multi-language projects (e.g. 'django/Django/Python' vs 'django/Django/JavaScript'). 1 match → proceeds; N → warning lists candidates; 0 → do NOT iterate guesses, call xmp4_projects(query=...) once then retry. |
| file_path | string | File path to disambiguate |
| page_size | integer | Results per page (default 20, max 100) |
| symbol_name* | string | Symbol name |
| output_format | string | Output format: Compact (default) or Verbose |
{
"type": "object",
"title": "SymbolParams",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"project",
"symbol_name"
],
"properties": {
"docs": {
"type": "string",
"nullable": true,
"description": "Include docs: none (default) | summary | full (xmp4_info only)"
},
"page": {
"type": "integer",
"format": "uint32",
"default": null,
"minimum": 0,
"nullable": true,
"description": "Page number (1-based, default 1; ignored by xmp4_info/xmp4_source)"
},
"project": {
"type": "string",
"description": "Project id: 'repo/project' or 'repo/project/language'. Case-insensitive prefix match. Append '/Python'|'/CSharp'|'/Java'|etc. only to disambiguate multi-language projects (e.g. 'django/Django/Python' vs 'django/Django/JavaScript'). 1 match → proceeds; N → warning lists candidates; 0 → do NOT iterate guesses, call xmp4_projects(query=...) once then retry."
},
"file_path": {
"type": "string",
"nullable": true,
"description": "File path to disambiguate"
},
"page_size": {
"type": "integer",
"format": "uint32",
"default": null,
"minimum": 0,
"nullable": true,
"description": "Results per page (default 20, max 100)"
},
"symbol_name": {
"type": "string",
"description": "Symbol name"
},
"output_format": {
"type": "string",
"nullable": true,
"description": "Output format: Compact (default) or Verbose"
}
}
}Read a raw file excerpt from an indexed project by line range. Use after xmp4_search/xmp4_outline locates the region of interest, or to expand a truncated xmp4_source snippet. Hard cap of 500 lines per call.
| Argument | Type | Description |
|---|---|---|
| project* | string | Project id: 'repo/project' or 'repo/project/language'. Case-insensitive prefix match. Append '/Python'|'/CSharp'|'/Java'|etc. only to disambiguate multi-language projects (e.g. 'django/Django/Python' vs 'django/Django/JavaScript'). 1 match → proceeds; N → warning lists candidates; 0 → do NOT iterate guesses, call xmp4_projects(query=...) once then retry. |
| to_line | integer | Ending line (inclusive, default from_line+49, hard cap 500 lines per call) |
| file_path* | string | File path inside the project, relative to repo root |
| from_line | integer | Starting line (1-based, default 1) |
{
"type": "object",
"title": "ViewParams",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"project",
"file_path"
],
"properties": {
"project": {
"type": "string",
"description": "Project id: 'repo/project' or 'repo/project/language'. Case-insensitive prefix match. Append '/Python'|'/CSharp'|'/Java'|etc. only to disambiguate multi-language projects (e.g. 'django/Django/Python' vs 'django/Django/JavaScript'). 1 match → proceeds; N → warning lists candidates; 0 → do NOT iterate guesses, call xmp4_projects(query=...) once then retry."
},
"to_line": {
"type": "integer",
"format": "uint32",
"default": null,
"minimum": 0,
"nullable": true,
"description": "Ending line (inclusive, default from_line+49, hard cap 500 lines per call)"
},
"file_path": {
"type": "string",
"description": "File path inside the project, relative to repo root"
},
"from_line": {
"type": "integer",
"format": "uint32",
"default": null,
"minimum": 0,
"nullable": true,
"description": "Starting line (1-based, default 1)"
}
}
}| case_sensitive | boolean | If true, search is case-sensitive (default false) |
{
"type": "object",
"title": "GrepParams",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"project",
"pattern"
],
"properties": {
"page": {
"type": "integer",
"format": "uint32",
"default": null,
"minimum": 0,
"nullable": true,
"description": "Page number (1-based, default 1)"
},
"pattern": {
"type": "string",
"description": "Regex pattern (case-insensitive by default)"
},
"project": {
"type": "string",
"description": "Project id: 'repo/project' or 'repo/project/language'. Case-insensitive prefix match. Append '/Python'|'/CSharp'|'/Java'|etc. only to disambiguate multi-language projects (e.g. 'django/Django/Python' vs 'django/Django/JavaScript'). 1 match → proceeds; N → warning lists candidates; 0 → do NOT iterate guesses, call xmp4_projects(query=...) once then retry."
},
"file_glob": {
"type": "string",
"nullable": true,
"description": "Optional file glob for multi-file walk (premium tier). Set XMP4_PREMIUM_GREP_WALK=true to enable."
},
"file_path": {
"type": "string",
"nullable": true,
"description": "Single-file grep target, repo-relative (e.g. 'src/foo.rs'). Required in free tier."
},
"page_size": {
"type": "integer",
"format": "uint32",
"default": null,
"minimum": 0,
"nullable": true,
"description": "Results per page (default 20, max 100)"
},
"max_results": {
"type": "integer",
"format": "uint32",
"default": null,
"minimum": 0,
"nullable": true,
"description": "Maximum number of hits to collect before pagination (default 50, max 1000)"
},
"case_sensitive": {
"type": "boolean",
"nullable": true,
"description": "If true, search is case-sensitive (default false)"
}
}
}{
"type": "object",
"title": "SymbolParams",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"project",
"symbol_name"
],
"properties": {
"docs": {
"type": "string",
"nullable": true,
"description": "Include docs: none (default) | summary | full (xmp4_info only)"
},
"page": {
"type": "integer",
"format": "uint32",
"default": null,
"minimum": 0,
"nullable": true,
"description": "Page number (1-based, default 1; ignored by xmp4_info/xmp4_source)"
},
"project": {
"type": "string",
"description": "Project id: 'repo/project' or 'repo/project/language'. Case-insensitive prefix match. Append '/Python'|'/CSharp'|'/Java'|etc. only to disambiguate multi-language projects (e.g. 'django/Django/Python' vs 'django/Django/JavaScript'). 1 match → proceeds; N → warning lists candidates; 0 → do NOT iterate guesses, call xmp4_projects(query=...) once then retry."
},
"file_path": {
"type": "string",
"nullable": true,
"description": "File path to disambiguate"
},
"page_size": {
"type": "integer",
"format": "uint32",
"default": null,
"minimum": 0,
"nullable": true,
"description": "Results per page (default 20, max 100)"
},
"symbol_name": {
"type": "string",
"description": "Symbol name"
},
"output_format": {
"type": "string",
"nullable": true,
"description": "Output format: Compact (default) or Verbose"
}
}
}