xmp4 — Semantic code knowledge for your stack

OSS libs in your stack, really used: source, tests, callers. C#, Java, TS, Python, Rust, PHP+.

Sollte ich dies verwenden

Qualität und Sicherheit

A
Qualität der Beschreibung
88%
Vollständigkeit des Schemas
91%
Qualität der Benennung
80%
Risiko der Vergiftung
100%
Übereinstimmung der Berechtigungen
100%
Einhaltung des Protokolls
100%

Befunde (2)

  • LOWTool 'xmp4_source' description lacks action verbin xmp4_source
  • LOWTool 'xmp4_symbol_at' description lacks action verbin xmp4_symbol_at

Basierend auf einer automatisierten Analyse der Tool-Definitionen und der Einhaltung des Protokolls.

Kontextkosten

~4,703Tokens (Tool-Definitionen)
~3.0 KBTypische Antwortgröße
Erhebliche Auswirkung auf die Aufmerksamkeit (3.67% von 128k Kontext)

Dies ist die ungefähre Anzahl der Tokens, die jedes Mal verbraucht werden, wenn die Tools des Servers in den Kontext eines Modells geladen werden. Höhere Werte verringern die Aufmerksamkeit, die für andere Aufgaben verfügbar ist.

Installieren

Installation mit einem Klick

Fügen Sie dies Ihrer Datei `claude_desktop_config.json` hinzu:

{
  "mcpServers": {
    "xmp4": {
      "url": "https://mcp.example4.ai/mcp"
    }
  }
}

Remote-Endpunkte

https://mcp.example4.ai/mcpstreamable-http

Was es kann

Tool-Inventar

Tools (16)

🟢 Nur lesen🟡 Schreiben🔴 Löschen⚪ Unbekannt
🟢xmp4_callees(docs, file_path, output_format, page, page_size, ...)

Find direct callees (methods called by) a symbol in a project. Navigate step-by-step by calling xmp4_callees again on interesting results.

Eingabe-Schema

{
  "type": "object",
  "properties": {
    "docs": {
      "description": "Include docs: none (default) | summary | full (xmp4_info only)",
      "nullable": true,
      "type": "string"
    },
    "file_path": {
      "description": "File path to disambiguate",
      "nullable": true,
      "type": "string"
    },
    "output_format": {
      "description": "Output format: Compact (default) or Verbose",
      "nullable": true,
      "type": "string"
    },
    "page": {
      "default": null,
      "description": "Page number (1-based, default 1; ignored by xmp4_info/xmp4_source)",
      "format": "uint32",
      "minimum": 0,
      "nullable": true,
      "type": "integer"
    },
    "page_size": {
      "default": null,
      "description": "Results per page (default 20, max 100)",
      "format": "uint32",
      "minimum": 0,
      "nullable": true,
      "type": "integer"
    },
    "project": {
      "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.",
      "type": "string"
    },
    "symbol_name": {
      "description": "Symbol name",
      "type": "string"
    }
  },
  "required": [
    "project",
    "symbol_name"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "title": "SymbolParams"
}
🟢xmp4_callers(docs, file_path, output_format, page, page_size, ...)

Find direct callers of a symbol in a project. Navigate step-by-step by calling xmp4_callers again on interesting results.

Eingabe-Schema

{
  "type": "object",
  "properties": {
    "docs": {
      "description": "Include docs: none (default) | summary | full (xmp4_info only)",
      "nullable": true,
      "type": "string"
    },
    "file_path": {
      "description": "File path to disambiguate",
      "nullable": true,
      "type": "string"
    },
    "output_format": {
      "description": "Output format: Compact (default) or Verbose",
      "nullable": true,
      "type": "string"
    },
    "page": {
      "default": null,
      "description": "Page number (1-based, default 1; ignored by xmp4_info/xmp4_source)",
      "format": "uint32",
      "minimum": 0,
      "nullable": true,
      "type": "integer"
    },
    "page_size": {
      "default": null,
      "description": "Results per page (default 20, max 100)",
      "format": "uint32",
      "minimum": 0,
      "nullable": true,
      "type": "integer"
    },
    "project": {
      "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.",
      "type": "string"
    },
    "symbol_name": {
      "description": "Symbol name",
      "type": "string"
    }
  },
  "required": [
    "project",
    "symbol_name"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "title": "SymbolParams"
}
🟢xmp4_deps(output_format, page, page_size, project)

List external dependencies of a project.

Eingabe-Schema

{
  "type": "object",
  "properties": {
    "output_format": {
      "description": "Output format: Compact (default) or Verbose",
      "nullable": true,
      "type": "string"
    },
    "page": {
      "default": null,
      "description": "Page number (1-based, default 1)",
      "format": "uint32",
      "minimum": 0,
      "nullable": true,
      "type": "integer"
    },
    "page_size": {
      "default": null,
      "description": "Results per page (default 20, max 100)",
      "format": "uint32",
      "minimum": 0,
      "nullable": true,
      "type": "integer"
    },
    "project": {
      "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.",
      "type": "string"
    }
  },
  "required": [
    "project"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "title": "RepoParams"
}
🟢xmp4_grep(case_sensitive, file_glob, file_path, max_results, page, ...)

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).

Eingabe-Schema

{
  "type": "object",
  "properties": {
    "case_sensitive": {
      "description": "If true, search is case-sensitive (default false)",
      "nullable": true,
      "type": "boolean"
    },
    "file_glob": {
      "description": "Optional file glob for multi-file walk (premium tier). Set XMP4_PREMIUM_GREP_WALK=true to enable.",
      "nullable": true,
      "type": "string"
    },
    "file_path": {
      "description": "Single-file grep target, repo-relative (e.g. 'src/foo.rs'). Required in free tier.",
      "nullable": true,
      "type": "string"
    },
    "max_results": {
      "default": null,
      "description": "Maximum number of hits to collect before pagination (default 50, max 1000)",
      "format": "uint32",
      "minimum": 0,
      "nullable": true,
      "type": "integer"
    },
    "page": {
      "default": null,
      "description": "Page number (1-based, default 1)",
      "format": "uint32",
      "minimum": 0,
      "nullable": true,
      "type": "integer"
    },
    "page_size": {
      "default": null,
      "description": "Results per page (default 20, max 100)",
      "format": "uint32",
      "minimum": 0,
      "nullable": true,
      "type": "integer"
    },
    "pattern": {
      "description": "Regex pattern (case-insensitive by default)",
      "type": "string"
    },
    "project": {
      "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.",
      "type": "string"
    }
  },
  "required": [
    "project",
    "pattern"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "title": "GrepParams"
}
🟢xmp4_guide

Usage guide for xmp4 tools — read this first to learn the correct workflow

Eingabe-Schema

{
  "type": "object",
  "properties": {}
}
🟢xmp4_hierarchy(docs, file_path, output_format, page, page_size, ...)

Get type hierarchy (base, interfaces, derived) for a symbol in a project.

Eingabe-Schema

{
  "type": "object",
  "properties": {
    "docs": {
      "description": "Include docs: none (default) | summary | full (xmp4_info only)",
      "nullable": true,
      "type": "string"
    },
    "file_path": {
      "description": "File path to disambiguate",
      "nullable": true,
      "type": "string"
    },
    "output_format": {
      "description": "Output format: Compact (default) or Verbose",
      "nullable": true,
      "type": "string"
    },
    "page": {
      "default": null,
      "description": "Page number (1-based, default 1; ignored by xmp4_info/xmp4_source)",
      "format": "uint32",
      "minimum": 0,
      "nullable": true,
      "type": "integer"
    },
    "page_size": {
      "default": null,
      "description": "Results per page (default 20, max 100)",
      "format": "uint32",
      "minimum": 0,
      "nullable": true,
      "type": "integer"
    },
    "project": {
      "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.",
      "type": "string"
    },
    "symbol_name": {
      "description": "Symbol name",
      "type": "string"
    }
  },
  "required": [
    "project",
    "symbol_name"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "title": "SymbolParams"
}
🟢xmp4_info(docs, file_path, output_format, page, page_size, ...)

Get detailed information about a symbol in a project.

Eingabe-Schema

{
  "type": "object",
  "properties": {
    "docs": {
      "description": "Include docs: none (default) | summary | full (xmp4_info only)",
      "nullable": true,
      "type": "string"
    },
    "file_path": {
      "description": "File path to disambiguate",
      "nullable": true,
      "type": "string"
    },
    "output_format": {
      "description": "Output format: Compact (default) or Verbose",
      "nullable": true,
      "type": "string"
    },
    "page": {
      "default": null,
      "description": "Page number (1-based, default 1; ignored by xmp4_info/xmp4_source)",
      "format": "uint32",
      "minimum": 0,
      "nullable": true,
      "type": "integer"
    },
    "page_size": {
      "default": null,
      "description": "Results per page (default 20, max 100)",
      "format": "uint32",
      "minimum": 0,
      "nullable": true,
      "type": "integer"
    },
    "project": {
      "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.",
      "type": "string"
    },
    "symbol_name": {
      "description": "Symbol name",
      "type": "string"
    }
  },
  "required": [
    "project",
    "symbol_name"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "title": "SymbolParams"
}
🟢xmp4_outline(file_path, output_format, page, page_size, project)

Get outline (all symbols) for a file in a project.

Eingabe-Schema

{
  "type": "object",
  "properties": {
    "file_path": {
      "description": "File path",
      "type": "string"
    },
    "output_format": {
      "description": "Output format: Compact (default) or Verbose",
      "nullable": true,
      "type": "string"
    },
    "page": {
      "default": null,
      "description": "Page number (1-based, default 1)",
      "format": "uint32",
      "minimum": 0,
      "nullable": true,
      "type": "integer"
    },
    "page_size": {
      "default": null,
      "description": "Results per page (default 20, max 100)",
      "format": "uint32",
      "minimum": 0,
      "nullable": true,
      "type": "integer"
    },
    "project": {
      "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.",
      "type": "string"
    }
  },
  "required": [
    "project",
    "file_path"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "title": "OutlineParams"
}
🟢xmp4_projects(language, page, page_size, query, repo)

Search and browse projects by language and name. Use this first to discover projects, then use other tools with the repo name.

Eingabe-Schema

{
  "type": "object",
  "properties": {
    "language": {
      "description": "Filter by language (e.g., Python, TypeScript, CSharp)",
      "nullable": true,
      "type": "string"
    },
    "page": {
      "default": null,
      "description": "Page number (1-based, default 1)",
      "format": "uint32",
      "minimum": 0,
      "nullable": true,
      "type": "integer"
    },
    "page_size": {
      "default": null,
      "description": "Results per page (default 20, max 100)",
      "format": "uint32",
      "minimum": 0,
      "nullable": true,
      "type": "integer"
    },
    "query": {
      "description": "Search by project name (case-insensitive contains)",
      "nullable": true,
      "type": "string"
    },
    "repo": {
      "description": "Filter by repository name",
      "nullable": true,
      "type": "string"
    }
  },
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "title": "ProjectsParams"
}
🟢xmp4_search(kind, max_results, output_format, page, page_size, ...)

Search symbols in a project. Use xmp4_projects first to find the project identifier.

Eingabe-Schema

{
  "type": "object",
  "properties": {
    "kind": {
      "description": "Filter by kind: Class, Method, Function, etc.",
      "nullable": true,
      "type": "string"
    },
    "max_results": {
      "default": null,
      "description": "Maximum results to return (default: 50). Kept as per-page upper bound alongside page_size.",
      "format": "uint",
      "minimum": 0,
      "nullable": true,
      "type": "integer"
    },
    "output_format": {
      "description": "Output format: Compact (default) or Verbose",
      "nullable": true,
      "type": "string"
    },
    "page": {
      "default": null,
      "description": "Page number (1-based, default 1)",
      "format": "uint32",
      "minimum": 0,
      "nullable": true,
      "type": "integer"
    },
    "page_size": {
      "default": null,
      "description": "Results per page (default 20, max 100)",
      "format": "uint32",
      "minimum": 0,
      "nullable": true,
      "type": "integer"
    },
    "project": {
      "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.",
      "type": "string"
    },
    "query": {
      "description": "Search query (symbol name or pattern)",
      "type": "string"
    }
  },
  "required": [
    "project",
    "query"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "title": "SearchParams"
}
🟢xmp4_server

Get server information, version, and capabilities

Eingabe-Schema

{
  "type": "object",
  "properties": {}
}
🟢xmp4_source(docs, file_path, output_format, page, page_size, ...)

Extract source code for a symbol in a project.

Eingabe-Schema

{
  "type": "object",
  "properties": {
    "docs": {
      "description": "Include docs: none (default) | summary | full (xmp4_info only)",
      "nullable": true,
      "type": "string"
    },
    "file_path": {
      "description": "File path to disambiguate",
      "nullable": true,
      "type": "string"
    },
    "output_format": {
      "description": "Output format: Compact (default) or Verbose",
      "nullable": true,
      "type": "string"
    },
    "page": {
      "default": null,
      "description": "Page number (1-based, default 1; ignored by xmp4_info/xmp4_source)",
      "format": "uint32",
      "minimum": 0,
      "nullable": true,
      "type": "integer"
    },
    "page_size": {
      "default": null,
      "description": "Results per page (default 20, max 100)",
      "format": "uint32",
      "minimum": 0,
      "nullable": true,
      "type": "integer"
    },
    "project": {
      "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.",
      "type": "string"
    },
    "symbol_name": {
      "description": "Symbol name",
      "type": "string"
    }
  },
  "required": [
    "project",
    "symbol_name"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "title": "SymbolParams"
}
🟢xmp4_symbol_at(column, file_path, line, project)

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.

Eingabe-Schema

{
  "type": "object",
  "properties": {
    "column": {
      "default": null,
      "description": "Column number (0-based, default 0 = beginning of line)",
      "format": "uint32",
      "minimum": 0,
      "nullable": true,
      "type": "integer"
    },
    "file_path": {
      "description": "File path inside the project, relative to repo root",
      "type": "string"
    },
    "line": {
      "default": null,
      "description": "Line number (1-based)",
      "format": "uint32",
      "minimum": 0,
      "nullable": true,
      "type": "integer"
    },
    "project": {
      "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.",
      "type": "string"
    }
  },
  "required": [
    "project",
    "file_path"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "title": "SymbolAtParams"
}
🟢xmp4_tests_for(docs, file_path, output_format, page, page_size, ...)

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.).

Eingabe-Schema

{
  "type": "object",
  "properties": {
    "docs": {
      "description": "Include docs: none (default) | summary | full (xmp4_info only)",
      "nullable": true,
      "type": "string"
    },
    "file_path": {
      "description": "File path to disambiguate",
      "nullable": true,
      "type": "string"
    },
    "output_format": {
      "description": "Output format: Compact (default) or Verbose",
      "nullable": true,
      "type": "string"
    },
    "page": {
      "default": null,
      "description": "Page number (1-based, default 1; ignored by xmp4_info/xmp4_source)",
      "format": "uint32",
      "minimum": 0,
      "nullable": true,
      "type": "integer"
    },
    "page_size": {
      "default": null,
      "description": "Results per page (default 20, max 100)",
      "format": "uint32",
      "minimum": 0,
      "nullable": true,
      "type": "integer"
    },
    "project": {
      "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.",
      "type": "string"
    },
    "symbol_name": {
      "description": "Symbol name",
      "type": "string"
    }
  },
  "required": [
    "project",
    "symbol_name"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "title": "SymbolParams"
}
🟢xmp4_usages(docs, file_path, output_format, page, page_size, ...)

Find all usages/references of a symbol in a project.

Eingabe-Schema

{
  "type": "object",
  "properties": {
    "docs": {
      "description": "Include docs: none (default) | summary | full (xmp4_info only)",
      "nullable": true,
      "type": "string"
    },
    "file_path": {
      "description": "File path to disambiguate",
      "nullable": true,
      "type": "string"
    },
    "output_format": {
      "description": "Output format: Compact (default) or Verbose",
      "nullable": true,
      "type": "string"
    },
    "page": {
      "default": null,
      "description": "Page number (1-based, default 1; ignored by xmp4_info/xmp4_source)",
      "format": "uint32",
      "minimum": 0,
      "nullable": true,
      "type": "integer"
    },
    "page_size": {
      "default": null,
      "description": "Results per page (default 20, max 100)",
      "format": "uint32",
      "minimum": 0,
      "nullable": true,
      "type": "integer"
    },
    "project": {
      "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.",
      "type": "string"
    },
    "symbol_name": {
      "description": "Symbol name",
      "type": "string"
    }
  },
  "required": [
    "project",
    "symbol_name"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "title": "SymbolParams"
}
🟢xmp4_view(file_path, from_line, project, to_line)

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.

Eingabe-Schema

{
  "type": "object",
  "properties": {
    "file_path": {
      "description": "File path inside the project, relative to repo root",
      "type": "string"
    },
    "from_line": {
      "default": null,
      "description": "Starting line (1-based, default 1)",
      "format": "uint32",
      "minimum": 0,
      "nullable": true,
      "type": "integer"
    },
    "project": {
      "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.",
      "type": "string"
    },
    "to_line": {
      "default": null,
      "description": "Ending line (inclusive, default from_line+49, hard cap 500 lines per call)",
      "format": "uint32",
      "minimum": 0,
      "nullable": true,
      "type": "integer"
    }
  },
  "required": [
    "project",
    "file_path"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "title": "ViewParams"
}

Empfohlene Prompts

search_research
Search for information about [topic] using xmp4 — Semantic code knowledge for your stack
Erwartete Tools: xmp4_search
find_specific
Find [specific item] using xmp4 — Semantic code knowledge for your stack
Erwartete Tools: xmp4_search

Community

Diesen Server bewerten

Nachweis

Aktuelle Beobachtungen

verifiziertVersion nicht aufgezeichnet16 Tools
verifiziertVersion nicht aufgezeichnet16 Tools