In-depth architectural comparison of the Sdk and Ncp 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
Sdk
Aggregators · Local stdio
Quality: 63/100 (Good) | Auth: other
Ncp
Aggregators · Local stdio
Quality: 64/100 (Good) | Auth: API Key required
Verdict Summary: Choose Sdk if you need specialized Aggregators tools running via a local process. Choose Ncp if your workspace requires Aggregators integration with local subprocess execution. Both servers can be configured concurrently in your client's mcpServers manifest.
Which MCP Server Should You Choose?
Choose Sdk when:
You need dedicated capabilities in the Aggregators domain.
You prefer local stdio subprocess transport architecture.
Your security boundary fits: other (Freemium).
You have access to required keys: EVM_PRIVATE_KEY, TWOS_TRIAL.
Unified API for AI agents — 180+ tools across geocoding, weather (NWS), climate stations (NOAA), earthquakes (USGS), tides (NOAA), points of interest (OpenStreetMap), patents (USPTO ODP), US case law (CourtListener / Free Law Project), Federal Register, Wikipedia, scientific papers (arXiv / PubMed / Semantic Scholar), AI summarize / translate / extract / screenshot / image-describe, image compression, DNS / WHOIS, crypto address-validate + EVM gas oracle, OFAC sanctions screening, US Census ACS demographics, airport / ZIP lookup. Sub-cent to a few cents per call in USDC on Base via x402 — no API keys, no signup. npx -y @2sio/mcp
NCP orchestrates your entire MCP ecosystem through intelligent discovery, eliminating token overhead while maintaining 98.2% accuracy.
Tools & Capabilities Breakdown
Sdk Tools (575)
search.endpoints
Find the right 2s endpoint(s) for a task using a natural-language query (e.g. "screen a company for sanctions", "decode a VIN", "check a domain's email security"). Returns ranked matches with id, path, method, price, and description. Use this to discover capabilities before calling.
batch.run
Run up to 50 endpoint calls behind ONE x402 payment. Price = exact sum of the sub-call prices (no discount). Atomic: every sub-call must succeed or nothing is charged (failures are returned so you can retry for free). Sub-calls must be ordinary catalog endpoints (no bearer-only, deprecated, variable-priced, or metered-upstream endpoints; no nested batch). Each item carries that endpoint's own response in `data`.
soil.profile
Ground-truth soil profile for any US lat/lng from USDA-NRCS SSURGO. Returns the soil map unit + component soil types ranked by composition %, each with taxonomic order/class, drainage class, hydrologic group, and slope. Keyless, public-domain. For agronomy, land/septic/foundation suitability, hydrology, crop-fit. Water/unsurveyed points return an empty component list.
soil.hardiness-zone
USDA Plant Hardiness Zone for a US ZIP code — planting zone (e.g. "9b") + average annual minimum-temperature range (°F) + ZIP centroid. Keyless, public-domain. The "what grows where" primitive for gardening/landscaping/nursery/agronomy.
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).
Sdk is categorized under Aggregators and uses a local stdio subprocess. In contrast, Ncp belongs to Aggregators using local stdio subprocess. Select Sdk when you need capabilities focused on aggregators and Ncp when you require tools for aggregators.
US Drought Monitor severity for a county (5-digit FIPS) or state (2-letter). Weekly % of area in each category (None, D0 Abnormally Dry → D4 Exceptional), newest first, with the worst category per week. Keyless, public-domain (NDMC/USDA/NOAA). The official metric behind USDA disaster eligibility.
agriculture.stats
USDA NASS QuickStats — authoritative US ag statistics: crop yields, acreage, production, livestock inventory, prices received. Filter by commodity (CORN/SOYBEANS/CATTLE…), year (or year__GE/__LE range), state (2-letter), county, statistic category (YIELD/PRODUCTION/AREA HARVESTED/PRICE RECEIVED), aggregation level. 50k-row cap — narrow broad queries. Public-domain.
telecom.fcc-filings
Search FCC ECFS filings for a proceeding/docket (e.g. 17-108 net neutrality, 11-42 Lifeline), optionally by filer. Returns newest filings with submission id, filer, type, lead bureau, received/disseminated dates, doc count. Track FCC regulatory dockets, comments, ex-parte filings. Public-domain.
telecom.market-area
Map a US lat/lon to its FCC spectrum-licensing geographies — Cellular Market Area (CMA), Basic/Major Trading Area (BTA/MTA), Partial Economic Area (PEA), and BEA/EAG/MEA/REAG economic areas — plus 2020 Census block FIPS, county, and block population. These define spectrum-license boundaries; distinct from ordinary geocoding. Keyless, public-domain.
occupation.profile
Full occupation dossier from O*NET (US DOL) by SOC/O*NET-SOC code (e.g. 15-1252). Returns title, description, bright-outlook flag, sample job titles, and top skills, knowledge, abilities, work tasks, and technology tools. CC-BY. The canonical occupation reference for résumé/JD reasoning + career mapping; pair the code with labor.wages.
occupation.search
Find O*NET occupations by keyword (job title, skill, or activity). Returns ranked occupations with SOC/O*NET-SOC code + title. The "occupation code for this job/skill" primitive — every occupation.* / labor.wages call composes on the code. CC-BY.
occupation.related
Occupations related/career-adjacent to a given O*NET occupation, by SOC/O*NET-SOC code. Returns ranked related occupations (code + title). For career-pathing and transferable-skills reasoning. CC-BY.
labor.wages
Occupational employment + wages from BLS OEWS by SOC code, nationally or by US state. Pass soc (e.g. 15-1252 Software Developers) + optional 2-letter state. Returns employment, hourly mean, and annual mean + 10th/25th/median/75th/90th-percentile wages (latest survey year). Authoritative ground-truth wages for comp benchmarking. Public-domain.
+563 more tools listed on main page
Ncp Tools (1)
sequentialthinking
A detailed tool for dynamic and reflective problem-solving through thoughts.
This tool helps analyze problems through a flexible thinking process that can adapt and evolve.
Each thought can build on, question, or revise previous insights as understanding deepens.
When to use this tool:
- Breaking down complex problems into steps
- Planning and design with room for revision
- Analysis that might need course correction
- Problems where the full scope might not be clear initially
- Problems that require a multi-step solution
- Tasks that need to maintain context over multiple steps
- Situations where irrelevant information needs to be filtered out
Key features:
- You can adjust total_thoughts up or down as you progress
- You can question or revise previous thoughts
- You can add more thoughts even after reaching what seemed like the end
- You can express uncertainty and explore alternative approaches
- Not every thought needs to build linearly - you can branch or backtrack
- Generates a solution hypothesis
- Verifies the hypothesis based on the Chain of Thought steps
- Repeats the process until satisfied
- Provides a correct answer
Parameters explained:
- thought: Your current thinking step, which can include:
* Regular analytical steps
* Revisions of previous thoughts
* Questions about previous decisions
* Realizations about needing more analysis
* Changes in approach
* Hypothesis generation
* Hypothesis verification
- nextThoughtNeeded: True if you need more thinking, even if at what seemed like the end
- thoughtNumber: Current number in sequence (can go beyond initial total if needed)
- totalThoughts: Current estimate of thoughts needed (can be adjusted up/down)
- isRevision: A boolean indicating if this thought revises previous thinking
- revisesThought: If is_revision is true, which thought number is being reconsidered
- branchFromThought: If branching, which thought number is the branching point
- branchId: Identifier for the current branch (if any)
- needsMoreThoughts: If reaching end but realizing more thoughts needed
You should:
1. Start with an initial estimate of needed thoughts, but be ready to adjust
2. Feel free to question or revise previous thoughts
3. Don't hesitate to add more thoughts if needed, even at the "end"
4. Express uncertainty when present
5. Mark thoughts that revise previous thinking or branch into new paths
6. Ignore information that is irrelevant to the current step
7. Generate a solution hypothesis when appropriate
8. Verify the hypothesis based on the Chain of Thought steps
9. Repeat the process until satisfied with the solution
10. Provide a single, ideally correct answer as the final output
11. Only set nextThoughtNeeded to false when truly done and a satisfactory answer is reached