{"name":"ai.example4/xmp4","slug":"example4-xmp4","title":"xmp4 — Semantic code knowledge for your stack","description":"OSS libs in your stack, really used: source, tests, callers. C#, Java, TS, Python, Rust, PHP+.","url":"https://mcp.market/server/example4-xmp4","rating":null,"grade":"A","score":87,"certified":false,"status":"active","category":"other","tags":[],"presence":{"score":18,"stars":0,"forks":0,"downloads_week":null,"last_push_at":"2026-07-22T11:58:26.000Z","license":"Apache-2.0"},"uptime":{"percent":100,"checks":28,"ok":28,"last_checked_at":"2026-11-04T11:25:51.097Z","last_ok_at":"2026-11-04T11:25:51.097Z","latency_ms":644},"claimed":false,"transport":"remote","callable_via_gateway":true,"default_price_micros":0,"repository":"https://github.com/0ics-srls/lsai-xmp4.public","website":"https://example4.ai","version":"1.2.6","remotes":[{"type":"streamable-http","url":"https://mcp.example4.ai/mcp"}],"packages":[],"tools":[{"name":"xmp4_callees","description":"Find direct callees (methods called by) a symbol in a project. Navigate step-by-step by calling xmp4_callees again on interesting results.","write_action":false,"price_micros":0,"input_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"}},{"name":"xmp4_callers","description":"Find direct callers of a symbol in a project. Navigate step-by-step by calling xmp4_callers again on interesting results.","write_action":false,"price_micros":0,"input_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"}},{"name":"xmp4_deps","description":"List external dependencies of a project.","write_action":false,"price_micros":0,"input_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"}},{"name":"xmp4_grep","description":"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).","write_action":false,"price_micros":0,"input_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"}},{"name":"xmp4_guide","description":"Usage guide for xmp4 tools — read this first to learn the correct workflow","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{}}},{"name":"xmp4_hierarchy","description":"Get type hierarchy (base, interfaces, derived) for a symbol in a project.","write_action":false,"price_micros":0,"input_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"}},{"name":"xmp4_info","description":"Get detailed information about a symbol in a project.","write_action":false,"price_micros":0,"input_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"}},{"name":"xmp4_outline","description":"Get outline (all symbols) for a file in a project.","write_action":false,"price_micros":0,"input_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"}},{"name":"xmp4_projects","description":"Search and browse projects by language and name. Use this first to discover projects, then use other tools with the repo name.","write_action":false,"price_micros":0,"input_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"}},{"name":"xmp4_search","description":"Search symbols in a project. Use xmp4_projects first to find the project identifier.","write_action":false,"price_micros":0,"input_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"}},{"name":"xmp4_server","description":"Get server information, version, and capabilities","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{}}},{"name":"xmp4_source","description":"Extract source code for a symbol in a project.","write_action":false,"price_micros":0,"input_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"}},{"name":"xmp4_symbol_at","description":"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.","write_action":false,"price_micros":0,"input_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"}},{"name":"xmp4_tests_for","description":"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.).","write_action":false,"price_micros":0,"input_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"}},{"name":"xmp4_usages","description":"Find all usages/references of a symbol in a project.","write_action":false,"price_micros":0,"input_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"}},{"name":"xmp4_view","description":"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.","write_action":false,"price_micros":0,"input_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"}}],"scan":{"score":87,"grade":"A","scanned_at":"2026-09-27T21:52:32.807Z","report":{"scannerVersion":"0.1.9","scannedAt":"2026-09-27T21:52:32.770Z","components":{"code":{"score":-1,"max":25,"notes":["remote-only server, no package to scan"]},"reliability":{"score":20,"max":20,"notes":["remote reachable in 1761ms"]},"poisoning":{"score":15,"max":15,"notes":["16 tool descriptions checked"]},"auth":{"score":10,"max":15,"notes":["open endpoint, read-only tools"]},"maintenance":{"score":12,"max":15,"notes":["last push 67 days ago"]},"identity":{"score":8,"max":10,"notes":["namespace and repository owner differ","GitHub account older than a year","website matches verified namespace"]}},"findings":[],"inputs":{"probes":[{"url":"https://mcp.example4.ai/mcp","reachable":true,"authRequired":false,"latencyMs":1761,"serverInfo":{"name":"xmp4","version":"1.2.7"}}],"packages":[],"repo":{"found":true,"owner":"0ics-srls","repo":"lsai-xmp4.public","archived":false,"pushedAt":"2026-07-22T11:58:26Z","stars":0,"forks":0,"openIssues":3,"ownerType":"Organization","ownerAvatarUrl":"https://avatars.githubusercontent.com/u/122556873?v=4","ownerCreatedAt":"2023-01-12T17:17:20Z","license":"Apache-2.0"},"icon":{"url":"https://example4.ai/apple-touch-icon.png","source":"site","width":180,"height":180},"presence":{"stars":0,"forks":0,"downloadsWeek":null,"license":"Apache-2.0","lastPushAt":"2026-07-22T11:58:26.000Z","score":18}}}},"grade_history":[],"reviews":[]}