xmp4 — Semantic code knowledge for your stack
by example4.ai · remote · no sign-in to list tools · v1.2.6 · published by ai.example4
OSS libs in your stack, really used: source, tests, callers. C#, Java, TS, Python, Rust, PHP+.
16 tools: 4 change things and 12 only read.
Scanned Oct 21, 2026
- Deletes or cancels0Claude Code: deny
- Can't be undone0Claude Code: ask
- Changes things4Claude Code: ask: see these tools
- Only reads12Claude Code: allow: see these tools
No check matched anything in the tool definitions. No finding is not a safety guarantee. How the checks work.
claude mcp add --transport http xmp4 https://mcp.example4.ai/mcpTools
Open a tool for its reasons and full description. Descriptions are the publisher's own words, shown as they are.
16 tools
Changes things 4Claude Code: ask
xmp4_grepServer-side regex text search over indexed project source files.No findings
Why it is in this group
- Nothing in its name or description says what it does, so it is counted as a write.
Description, as the server wrote it 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).
xmp4_guideUsage guide for xmp4 tools — read this first to learn the correct workflowNo findings
Why it is in this group
- Nothing in its name or description says what it does, so it is counted as a write.
Description, as the server wrote it Usage guide for xmp4 tools — read this first to learn the correct workflow
xmp4_sourceExtract source code for a symbol in a project.No findings
Why it is in this group
- Nothing in its name or description says what it does, so it is counted as a write.
Description, as the server wrote it Extract source code for a symbol in a project.
xmp4_symbol_atLSP-style position→symbol lookup.No findings
Why it is in this group
- Nothing in its name or description says what it does, so it is counted as a write.
Description, as the server wrote it 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.
Only reads 12Claude Code: allow
xmp4_calleesFind direct callees (methods called by) a symbol in a project.No findings
Why it is in this group
- The description's first verb is "find": a word for reading.
Description, as the server wrote it Find direct callees (methods called by) a symbol in a project. Navigate step-by-step by calling xmp4_callees again on interesting results.
xmp4_callersFind direct callers of a symbol in a project.No findings
Why it is in this group
- The description's first verb is "find": a word for reading.
Description, as the server wrote it Find direct callers of a symbol in a project. Navigate step-by-step by calling xmp4_callers again on interesting results.
xmp4_depsList external dependencies of a project.No findings
Why it is in this group
- The description's first verb is "list": a word for reading.
Description, as the server wrote it List external dependencies of a project.
xmp4_hierarchyGet type hierarchy (base, interfaces, derived) for a symbol in a project.No findings
Why it is in this group
- The description's first verb is "get": a word for reading.
Description, as the server wrote it Get type hierarchy (base, interfaces, derived) for a symbol in a project.
xmp4_infoGet detailed information about a symbol in a project.No findings
Why it is in this group
- The description's first verb is "get": a word for reading.
Description, as the server wrote it Get detailed information about a symbol in a project.
xmp4_outlineGet outline (all symbols) for a file in a project.No findings
Why it is in this group
- The description's first verb is "get": a word for reading.
Description, as the server wrote it Get outline (all symbols) for a file in a project.
xmp4_projectsSearch and browse projects by language and name.No findings
Why it is in this group
- The description's first verb is "search": a word for reading.
Description, as the server wrote it Search and browse projects by language and name. Use this first to discover projects, then use other tools with the repo name.
xmp4_searchSearch symbols in a project.No findings
Why it is in this group
- The name "xmp4_search" says "search": a word for reading.
Description, as the server wrote it Search symbols in a project. Use xmp4_projects first to find the project identifier.
xmp4_serverGet server information, version, and capabilitiesNo findings
Why it is in this group
- The description's first verb is "get": a word for reading.
Description, as the server wrote it Get server information, version, and capabilities
xmp4_tests_forFind 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…No findings
Why it is in this group
- The description's first verb is "find": a word for reading.
Description, as the server wrote it 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.).
xmp4_usagesFind all usages/references of a symbol in a project.No findings
Why it is in this group
- The description's first verb is "find": a word for reading.
Description, as the server wrote it Find all usages/references of a symbol in a project.
xmp4_viewRead a raw file excerpt from an indexed project by line range.No findings
Why it is in this group
- The name "xmp4_view" says "view": a word for reading.
Description, as the server wrote it 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.
This is not a safety rating, and no finding is not a safety guarantee. The groups and findings come from fixed checks of the tool definitions the server returned on the date shown, not from its code or what it does when called. How the checks work.
Install
Pinned to version 1.2.6. Values in angle brackets are yours to fill in.
claude mcp add --transport http xmp4 https://mcp.example4.ai/mcpRun in a terminal.
Claude Code permissions
Allow the reads, ask before a change, deny the deletes. Paste into .claude/settings.json.
{
"permissions": {
"allow": [
"mcp__xmp4__xmp4_callees",
"mcp__xmp4__xmp4_callers",
"mcp__xmp4__xmp4_deps",
"mcp__xmp4__xmp4_hierarchy",
"mcp__xmp4__xmp4_info",
"mcp__xmp4__xmp4_outline",
"mcp__xmp4__xmp4_projects",
"mcp__xmp4__xmp4_search",
"mcp__xmp4__xmp4_server",
"mcp__xmp4__xmp4_tests_for",
"mcp__xmp4__xmp4_usages",
"mcp__xmp4__xmp4_view"
],
"ask": [
"mcp__xmp4__xmp4_grep",
"mcp__xmp4__xmp4_guide",
"mcp__xmp4__xmp4_source",
"mcp__xmp4__xmp4_symbol_at"
],
"deny": []
}
}Tools that only read are allowed, tools that change things ask first, tools that delete or cancel are denied. It assumes the server is installed as xmp4. Review it before you use it.