In-depth architectural comparison of the Sharplens MCP and Dodo Agent Plugin MCP servers. Compare execution transports, security boundaries, tool capabilities, quality scores, and ready-to-paste client installation snippets for Claude, Cursor, Windsurf, and VS Code.
At a Glance & Executive Verdict
Sharplens MCP
Finance & Fintech · Local stdio
Quality: 61/100 (Good) | Auth: No auth required
Dodo Agent Plugin
Finance & Fintech · Local stdio
Quality: 81/100 (Excellent) | Auth: OAuth 2.0
Verdict Summary: Choose Sharplens MCP if you need specialized Finance & Fintech tools running via a local process. Choose Dodo Agent Plugin if your workspace requires Finance & Fintech integration with local subprocess execution. Both servers can be configured concurrently in your client's mcpServers manifest.
Which MCP Server Should You Choose?
Choose Sharplens MCP when:
You need dedicated capabilities in the Finance & Fintech domain.
You prefer local stdio subprocess transport architecture.
Your security boundary fits: No auth required (Free / Open Source).
You have access to required keys: DOTNET_SOLUTION_PATH, SHARPLENS_ABSOLUTE_PATHS, SHARPLENS_LOG_LEVEL, SHARPLENS_TIMEOUT_SECONDS, SHARPLENS_MAX_DIAGNOSTICS, SHARPLENS_ENABLE_SEMANTIC_CACHE.
⃣ 🏠 - 58 semantic C/.NET analysis tools via Roslyn. Navigation, refactoring, find usages, and code intelligence for AI agents.
Official Dodo Payments MCP servers — dodopayments-api for live payments, subscriptions, customers, products, refunds, license keys, and usage-based billing (browser OAuth, no API key needed) and dodo-knowledge for semantic search over Dodo Payments documentation.
Tools & Capabilities Breakdown
Sharplens MCP Tools (80)
get_symbol_info
Semantic info at position
go_to_definition
Jump to symbol definition
find_references
All references; each classified read/write/invocation/cast/typeof/nameof/attribute; optional `kind` filter
find_implementations
Interface/abstract implementations
find_callers
Impact analysis - who calls this?
get_call_graph
Multi-hop callers/callees graph with depth bound + cycle detection
Ready-to-Paste Client Configurations
Paste either (or both) of these JSON server blocks into your client config file (e.g. claude_desktop_config.json or ~/.cursor/mcp.json).
Sharplens MCP is categorized under Finance & Fintech and uses a local stdio subprocess. In contrast, Dodo Agent Plugin belongs to Finance & Fintech using local stdio subprocess. Select Sharplens MCP when you need capabilities focused on finance & fintech and Dodo Agent Plugin when you require tools for finance & fintech.
Reachability + the connecting call path(s) between two methods; follows dispatch, with barriers and a checkpoint
get_type_hierarchy
Inheritance chain
search_symbols
Glob pattern search (`*Handler`, `Get*`)
semantic_query
Multi-filter search (async, public, etc.)
get_type_members
All members by type name
get_type_members_batch
Multiple types in one call
+68 more tools listed on main page
Dodo Agent Plugin Tools (2)
execute
Runs JavaScript code to interact with the Dodo Payments API.
You are a skilled TypeScript programmer writing code to interface with the service.
Define an async function named "run" that takes a single parameter of an initialized SDK client and it will be run.
For example:
```
async function run(client) {
const checkoutSessionResponse = await client.checkoutSessions.create({ product_cart: [{ product_id: 'pdt_example', quantity: 1 }] });
console.log(checkoutSessionResponse.session_id);
}
```
You will be returned anything that your function returns, plus the results of any console.log statements.
Do not add try-catch blocks for single API calls. The tool will handle errors for you.
Do not add comments unless necessary for generating better code.
Code will run in a container, and cannot interact with the network outside of the given SDK client.
Variables will not persist between calls, so make sure to return or log any data you might need later.
Remember that you are writing TypeScript code, so you need to be careful with your types.
Always type dynamic key-value stores explicitly as Record<string, YourValueType> instead of {}.
search_docs
Search SDK documentation to find methods, parameters, and usage examples for interacting with the API. Use this before writing code when you need to discover the right approach.