Home / File/ server.ts — mcp Source File

server.ts — mcp Source File

Architecture documentation for server.ts, a typescript file in the mcp codebase. 18 imports, 2 dependents.

File typescript McpServer ToolRegistry 18 imports 2 dependents 1 functions 1 classes

Entity Profile

Dependency Diagram

graph LR
  54581714_e921_5e5e_17c6_d2040cdc3b55["server.ts"]
  242ec636_ba33_547c_5cb6_5f619c73d099["overview.ts"]
  54581714_e921_5e5e_17c6_d2040cdc3b55 --> 242ec636_ba33_547c_5cb6_5f619c73d099
  ca77ccf4_30df_6b5c_22dc_f7ba42fd0765["symbol-context.ts"]
  54581714_e921_5e5e_17c6_d2040cdc3b55 --> ca77ccf4_30df_6b5c_22dc_f7ba42fd0765
  5c6acde2_5ba8_604f_70ae_120f7b72feaa["types.ts"]
  54581714_e921_5e5e_17c6_d2040cdc3b55 --> 5c6acde2_5ba8_604f_70ae_120f7b72feaa
  9ab4aae7_6acf_c11b_eb86_226086872d36["ClientContext"]
  54581714_e921_5e5e_17c6_d2040cdc3b55 --> 9ab4aae7_6acf_c11b_eb86_226086872d36
  b00e0b6e_8e66_44d2_f709_c8c6bbb476c9["zip-repository.ts"]
  54581714_e921_5e5e_17c6_d2040cdc3b55 --> b00e0b6e_8e66_44d2_f709_c8c6bbb476c9
  4ac071e8_cf9e_8aff_e8f4_ae8e57382223["cleanupOldZips"]
  54581714_e921_5e5e_17c6_d2040cdc3b55 --> 4ac071e8_cf9e_8aff_e8f4_ae8e57382223
  108c9ff4_bdb8_518a_9256_9ff4cd9d39a7["graph-cache.ts"]
  54581714_e921_5e5e_17c6_d2040cdc3b55 --> 108c9ff4_bdb8_518a_9256_9ff4cd9d39a7
  8e2a6102_97e1_76b1_c08e_d7b87f095026["loadCacheFromDisk"]
  54581714_e921_5e5e_17c6_d2040cdc3b55 --> 8e2a6102_97e1_76b1_c08e_d7b87f095026
  314364e0_fe4a_b7a7_3c8a_3ec3565c6f43["setRepoMap"]
  54581714_e921_5e5e_17c6_d2040cdc3b55 --> 314364e0_fe4a_b7a7_3c8a_3ec3565c6f43
  83c802b9_e3aa_19bf_2f08_8c122116d4f8["setNoApiFallback"]
  54581714_e921_5e5e_17c6_d2040cdc3b55 --> 83c802b9_e3aa_19bf_2f08_8c122116d4f8
  5f051fd3_b5fd_05fe_3e0b_f20364a0b064["precacheForDirectory"]
  54581714_e921_5e5e_17c6_d2040cdc3b55 --> 5f051fd3_b5fd_05fe_3e0b_f20364a0b064
  19f4d048_f875_3a64_f6f5_2d534dca972b["constants.ts"]
  54581714_e921_5e5e_17c6_d2040cdc3b55 --> 19f4d048_f875_3a64_f6f5_2d534dca972b
  c78d0ed7_0af5_dfcf_6bfb_aff1a1d68fb1["logger.ts"]
  54581714_e921_5e5e_17c6_d2040cdc3b55 --> c78d0ed7_0af5_dfcf_6bfb_aff1a1d68fb1
  3b18eaac_377b_3c3d_7e9d_4c43778a0dbe["mcp.js"]
  54581714_e921_5e5e_17c6_d2040cdc3b55 --> 3b18eaac_377b_3c3d_7e9d_4c43778a0dbe
  style 54581714_e921_5e5e_17c6_d2040cdc3b55 fill:#6366f1,stroke:#818cf8,color:#fff

Relationship Graph

Source Code

/**
 * MCP Server implementation for the Supermodel codebase analysis tools.
 * Redesigned for maximum SWE-bench performance:
 *  - 2 tools (overview, symbol_context) instead of 10
 *  - Pre-computed graph support for sub-second response times
 *  - On-demand API fallback when no cache exists
 * @module server
 */
import { McpServer } from '@modelcontextprotocol/sdk/server/mcp.js';
import { StdioServerTransport } from '@modelcontextprotocol/sdk/server/stdio.js';
import { Configuration, DefaultApi, SupermodelClient } from '@supermodeltools/sdk';
import overviewTool from './tools/overview';
import symbolContextTool from './tools/symbol-context';
import { ClientContext } from './types';
import { CallToolRequestSchema, ListToolsRequestSchema } from '@modelcontextprotocol/sdk/types.js';
import { cleanupOldZips } from './utils/zip-repository';
import { graphCache, loadCacheFromDisk, setRepoMap, setNoApiFallback, precacheForDirectory } from './cache/graph-cache';
import { Agent } from 'undici';
import { DEFAULT_API_TIMEOUT_MS, CONNECTION_TIMEOUT_MS, ZIP_CLEANUP_AGE_MS } from './constants';
import * as logger from './utils/logger';

// Configure HTTP timeout for API requests
const parsedTimeout = parseInt(process.env.SUPERMODEL_TIMEOUT_MS || '', 10);
const TIMEOUT_MS = Number.isFinite(parsedTimeout) && parsedTimeout > 0
  ? parsedTimeout
  : DEFAULT_API_TIMEOUT_MS;

const agent = new Agent({
  headersTimeout: TIMEOUT_MS,
  bodyTimeout: TIMEOUT_MS,
  connectTimeout: CONNECTION_TIMEOUT_MS,
});

const fetchWithTimeout: typeof fetch = (url, init) => {
  return fetch(url, {
    ...init,
    // @ts-ignore - 'dispatcher' is a valid undici option
    dispatcher: agent,
  });
};

export interface ServerOptions {
  noApiFallback?: boolean;
  precache?: boolean;
}

export class Server {
  private server: McpServer;
  private client: ClientContext;
  private defaultWorkdir?: string;
  private options?: ServerOptions;
  constructor(defaultWorkdir?: string, options?: ServerOptions) {
    this.defaultWorkdir = defaultWorkdir;
    this.options = options;
    // Note: noApiFallback is deferred to start() so startup precaching can use the API
    this.server = new McpServer(
      {
        name: 'supermodel_api',
        version: '0.0.1',
      },
// ... (120 more lines)

Domain

Subdomains

Functions

Classes

Frequently Asked Questions

What does server.ts do?
server.ts is a source file in the mcp codebase, written in typescript. It belongs to the McpServer domain, ToolRegistry subdomain.
What functions are defined in server.ts?
server.ts defines 1 function(s): fetchWithTimeout.
What does server.ts depend on?
server.ts imports 18 module(s): ClientContext, cleanupOldZips, constants.ts, graph-cache.ts, loadCacheFromDisk, logger.ts, mcp.js, overview.ts, and 10 more.
What files import server.ts?
server.ts is imported by 2 file(s): index.ts, server.test.ts.
Where is server.ts in the architecture?
server.ts is located at src/server.ts (domain: McpServer, subdomain: ToolRegistry, directory: src).

Analyze Your Own Codebase

Get architecture documentation, dependency graphs, and domain analysis for your codebase in minutes.

Try Supermodel Free