2 views
modelcontextprotocol/servers
Model Context Protocol Servers
TypeScript★ 90,855+50 that day#6 on trending
C69.9/100
Duplication64
5.8% in typescript, python, bash, perlDead code97
0%Complexity57
43.4% The score is jscpd's own --health model: markup, data and text left out, tests kept. The numbers below are the trending scan's.
2.78%duplicated code · 248 of 8,932 lines
13clones in code
68code files of 147 scanned
6.42%duplicated over all files · 106 clones
Most complex files
- src/everything/__tests__/tools.test.ts173 cx
- src/filesystem/__tests__/lib.test.ts125 cx
- src/memory/__tests__/knowledge-graph.test.ts104 cx
- src/filesystem/__tests__/path-validation.test.ts102 cx
- src/memory/index.ts98 cx
- src/filesystem/lib.ts88 cx
- src/git/src/mcp_server_git/server.py76 cx
- src/filesystem/index.ts72 cx
- src/everything/__tests__/resources.test.ts61 cx
- src/git/tests/test_server.py58 cx
Dead code 0.02% unused · 3 findings
- src/everything/tools/trigger-url-elicitation.ts:__resetIssuedErrorPathElicitationsunused-export
- src/filesystem/lib.ts:osunused-import
- src/filesystem/lib.ts:diffLinesunused-import
The code number leaves out tests, fixtures, docs, examples, data files, styles, translations and vendored code.
Largest clones in the code
- 14 lines in 4 placestypescript57 tokenssrc/everything/vitest.config.ts:1–14src/filesystem/vitest.config.ts:1–14src/memory/vitest.config.ts:1–14src/sequentialthinking/vitest.config.ts:1–14
1import { defineConfig } from 'vitest/config'; 2 3export default defineConfig({ 4 test: { 5 globals: true, 6 environment: 'node', 7 include: ['**/__tests__/**/*.test.ts'], 8 coverage: { 9 provider: 'v8', 10 include: ['**/*.ts'],First 10 of 14 lines.
- 25 lines in 2 placestypescript123 tokens
3import { fileURLToPath } from 'url'; 4 5export function resolvePackageVersion(): string { 6 const require = createRequire(import.meta.url); 7 const moduleDir = path.dirname(fileURLToPath(import.meta.url)); 8 const candidates = [ 9 path.join(moduleDir, 'package.json'), 10 path.join(moduleDir, '..', 'package.json'), 11 ]; 123import { fileURLToPath } from 'node:url'; 4 5/** 6 * Resolve this package's version from package.json. 7 * 8 * Works both from source (`src/sequentialthinking/`) and from the published 9 * layout (`dist/`), where package.json lives one directory up. 10 */ 11export function resolvePackageVersion(): string { 12 const require = createRequire(import.meta.url);First 10 of 25 lines, the second copy on the right.
- 38 lines in 2 placestypescript115 tokenssrc/everything/tools/trigger-elicitation-request-async.ts:185–222src/everything/tools/trigger-sampling-request-async.ts:181–218
185} 186 187// Check for timeout 188if (attempts >= MAX_POLL_ATTEMPTS) { 189 return { 190 content: [ 191 { 192 type: "text", 193 text: `[TIMEOUT] Task timed out after ${MAX_POLL_ATTEMPTS} poll attempts\n\nProgress:\n${statusMessages.join( 194 "\n"First 10 of 38 lines.
7 more
- 27 lines in 2 placestypescript112 tokens
- 30 lines in 2 placestypescript104 tokens
- 19 lines in 2 placestypescript71 tokens
- 12 lines in 2 placestypescript70 tokens
- 13 lines in 2 placestypescript69 tokens
- 7 lines in 2 placestypescript65 tokens
- 26 lines in 2 placestypescript51 tokens
Largest clones over all files, tests and data included
- 11 lines in 4 placesmarkdowndocs and examples180 tokenssrc/everything/README.md:58–68src/filesystem/README.md:284–294src/git/README.md:177–187src/sequentialthinking/README.md:138–148
58[](https://insider… 59 60For manual installation, you can configure the MCP server using one of these methods: 61 62**Method 1: User Configuration (Recommended)** 63Add the configuration to your user-level MCP configuration file. Open the Command Palette (`Ctrl + Shift + P`) and run `MCP: Open User Configuration`. This wil… 64 65**Method 2: Workspace Configuration** 66Alternatively, you can add the configuration to a file called `.vscode/mcp.json` in your workspace. This will allow you to share the configuration with others. 67First 10 of 11 lines.
- 6 lines in 8 placestypescripttests52 tokenssrc/everything/__tests__/tools.test.ts:614–619src/everything/__tests__/tools.test.ts:723–728src/everything/__tests__/tools.test.ts:739–744src/everything/__tests__/tools.test.ts:766–771src/everything/__tests__/tools.test.ts:870–875and 3 more
614const mockServer = { 615 registerTool: vi.fn((name: string, config: any, handler: Function) => { 616 handlers.set(name, handler); 617 }), 618 server: { 619 getClientCapabilities: vi.fn(() => ({ elicitation: {} })),723const mockServer = { 724 registerTool: vi.fn((name: string, config: any, handler: Function) => { 725 handlers.set(name, handler); 726 }), 727 server: { 728 getClientCapabilities: vi.fn(() => ({ elicitation: { form: {} } })), - 8 lines in 6 placestypescripttests71 tokenssrc/everything/__tests__/tools.test.ts:544–551src/everything/__tests__/tools.test.ts:612–619src/everything/__tests__/tools.test.ts:721–728src/everything/__tests__/tools.test.ts:737–744src/everything/__tests__/tools.test.ts:926–933and 1 more
544it('should register when client supports sampling', () => { 545 const handlers: Map<string, Function> = new Map(); 546 const mockServer = { 547 registerTool: vi.fn((name: string, config: any, handler: Function) => { 548 handlers.set(name, handler); 549 }), 550 server: { 551 getClientCapabilities: vi.fn(() => ({ sampling: {} })),612it('should register when client supports elicitation', () => { 613 const handlers: Map<string, Function> = new Map(); 614 const mockServer = { 615 registerTool: vi.fn((name: string, config: any, handler: Function) => { 616 handlers.set(name, handler); 617 }), 618 server: { 619 getClientCapabilities: vi.fn(() => ({ elicitation: {} })), - 9 lines in 6 placestypescripttests71 tokens
- 9 lines in 5 placestypescripttests56 tokens
By format, code only
| Format | Files | Lines | Clones | Duplicated lines | Duplication |
|---|---|---|---|---|---|
| typescript | 51 | 6,738 | 13 | 248 | 3.68% |
| python | 7 | 1,376 | 0 | 0 | 0% |
| bash | 9 | 644 | 0 | 0 | 0% |
| perl | 1 | 174 | 0 | 0 | 0% |
By format, all files
| Format | Files | Lines | Clones | Duplicated lines | Duplication |
|---|---|---|---|---|---|
| typescript | 76 | 13,545 | 76 | 903 | 6.67% |
| markdown | 23 | 3,192 | 13 | 305 | 9.56% |
| python | 10 | 2,820 | 10 | 99 | 3.51% |
| yaml | 5 | 575 | 6 | 88 | 15.3% |
| json | 13 | 812 | 1 | 18 | 2.22% |
| bash | 12 | 674 | 0 | 0 | 0% |
| perl | 1 | 174 | 0 | 0 | 0% |
| toml | 3 | 130 | 0 | 0 | 0% |
| text | 4 | 87 | 0 | 0 | 0% |
Trending appearances
| Day | Rank | Stars | Files | Lines | Clones | All files | Code | Health | Commit |
|---|---|---|---|---|---|---|---|---|---|
| Oct 1, 2026 | #6 | 90,855 (+50) | 147 | 22,009 | 106 | 6.42% | 2.78% | C 69.9 | f46d957 |
Want this for your own project? Install jscpd and run jscpd ., or measure it the way the baselines were measured.