A side-by-side look at the Primitiv and Sharplens MCP MCP servers: transport, auth, tools, quality signals, and the config to install either one in Claude, Cursor, Windsurf or VS Code.
Verdict: choose Primitiv for finance & fintech work as a local process; choose Sharplens MCP for finance & fintech as a local process. You can also run both side by side in one mcpServers block.
get_design_context, get_token, get_component.DOTNET_SOLUTION_PATH, SHARPLENS_ABSOLUTE_PATHS, SHARPLENS_LOG_LEVEL, SHARPLENS_TIMEOUT_SECONDS, SHARPLENS_MAX_DIAGNOSTICS, SHARPLENS_ENABLE_SEMANTIC_CACHE.get_symbol_info, go_to_definition, find_references.Rows where the two servers differ are marked.
| Spec | ||
|---|---|---|
| Category | Finance & Fintech | Finance & Fintech |
| Quality signal | 64/100 · Good | 61/100 · Good |
| Install command | Confirmed | Confirmed |
| Transport | Local subprocess (stdio) | Local subprocess (stdio) |
| Auth | No auth required | No auth required |
| Pricing | Free | Free |
| Required env vars | None listed | DOTNET_SOLUTION_PATHSHARPLENS_ABSOLUTE_PATHSSHARPLENS_LOG_LEVELSHARPLENS_TIMEOUT_SECONDSSHARPLENS_MAX_DIAGNOSTICSSHARPLENS_ENABLE_SEMANTIC_CACHE |
| Verified owner | Community listing | Community listing |
| GitHub stars | 21 | 35 |
| Directory activity | 3 views 0 installs 0 upvotes | 4 views 0 installs 0 upvotes |
| Tools | 6 | 80 |
| Full listing | View Primitiv | View Sharplens MCP |
get_design_contextGet tokens, components, conflicts, inferred rules, and violation count. Default (no category) returns a summary with counts. Pass `category: "all" \get_tokenLook up a specific token by name. Pass `category` to narrow search (e.g. `"colors"`, `"spacing"`, `"borderRadius"`); aliases like `"radius"` / `"z-index"` are normalized.get_componentLook up a specific component by name. Returns props, variants, source provenance, and `kind` — `component`, `screen`, `provider`, `icon`, or `other`, so agents reuse real UI and skip screens/providers/icons.get_conflictsGet conflicts between sources. Pass `type: "all" \get_inferred_rulesGet the design rules Primitiv has extracted from your codebase patterns. Pass `category` to filter.get_violationsList token-misuse violations — hardcoded literals in source that bypass the contract, with a suggested token when one fits. Pass `category: "all" \get_symbol_infoSemantic info at positiongo_to_definitionJump to symbol definitionfind_referencesAll references; each classified read/write/invocation/cast/typeof/nameof/attribute; optional `kind` filterfind_implementationsInterface/abstract implementationsfind_callersImpact analysis - who calls this?get_call_graphMulti-hop callers/callees graph with depth bound + cycle detectionfind_path_betweenReachability + the connecting call path(s) between two methods; follows dispatch, with barriers and a checkpointget_type_hierarchyInheritance chainsearch_symbolsGlob pattern search (`*Handler`, `Get*`)semantic_queryMulti-filter search (async, public, etc.)get_type_membersAll members by type nameget_type_members_batchMultiple types in one callPaste either block (or both) into your client config, e.g. claude_desktop_config.json or ~/.cursor/mcp.json. We only show a config when the install command is confirmed.
{
"mcpServers": {
"ai-by-design-primitiv": {
"command": "npx",
"args": [
"-y",
"@ai-by-design/primitiv"
]
}
}
}
{
"mcpServers": {
"pzalutski-pixel-sharplens-mcp": {
"command": "npx",
"args": [
"-y",
"sharplens-mcp"
],
"env": {
"DOTNET_SOLUTION_PATH": "YOUR_DOTNET_SOLUTION_PATH_HERE",
"SHARPLENS_ABSOLUTE_PATHS": "YOUR_SHARPLENS_ABSOLUTE_PATHS_HERE",
"SHARPLENS_LOG_LEVEL": "YOUR_SHARPLENS_LOG_LEVEL_HERE",
"SHARPLENS_TIMEOUT_SECONDS": "YOUR_SHARPLENS_TIMEOUT_SECONDS_HERE",
"SHARPLENS_MAX_DIAGNOSTICS": "YOUR_SHARPLENS_MAX_DIAGNOSTICS_HERE",
"SHARPLENS_ENABLE_SEMANTIC_CACHE": "YOUR_SHARPLENS_ENABLE_SEMANTIC_CACHE_HERE"
}
}
}
}