@sourcebot/mcp
Version:
[](https://sourcebot.dev) [](https://github.com/sourcebot-dev/sourcebot) [ • 4.84 kB
TypeScript
import { AskCodebaseRequest, AskCodebaseResponse, FileSourceRequest, ListReposQueryParams, SearchRequest, ListCommitsQueryParamsSchema, ListLanguageModelsResponse, ListTreeApiRequest, ListTreeApiResponse } from './types.js';
export declare const search: (request: SearchRequest) => Promise<{
stats: {
actualMatchCount: number;
totalMatchCount: number;
duration: number;
fileCount: number;
filesSkipped: number;
contentBytesLoaded: number;
indexBytesLoaded: number;
crashes: number;
shardFilesConsidered: number;
filesConsidered: number;
filesLoaded: number;
shardsScanned: number;
shardsSkipped: number;
shardsSkippedFilter: number;
ngramMatches: number;
ngramLookups: number;
wait: number;
matchTreeConstruction: number;
matchTreeSearch: number;
regexpsConsidered: number;
flushReason: string;
};
files: {
webUrl: string;
fileName: {
text: string;
matchRanges: {
start: {
byteOffset: number;
lineNumber: number;
column: number;
};
end: {
byteOffset: number;
lineNumber: number;
column: number;
};
}[];
};
repository: string;
repositoryId: number;
language: string;
chunks: {
matchRanges: {
start: {
byteOffset: number;
lineNumber: number;
column: number;
};
end: {
byteOffset: number;
lineNumber: number;
column: number;
};
}[];
content: string;
contentStart: {
byteOffset: number;
lineNumber: number;
column: number;
};
symbols?: {
symbol: string;
kind: string;
parent?: {
symbol: string;
kind: string;
} | undefined;
}[] | undefined;
}[];
externalWebUrl?: string | undefined;
content?: string | undefined;
branches?: string[] | undefined;
}[];
repositoryInfo: {
id: number;
codeHostType: string;
name: string;
displayName?: string | undefined;
webUrl?: string | undefined;
}[];
isSearchExhaustive: boolean;
}>;
export declare const listRepos: (queryParams?: ListReposQueryParams) => Promise<{
repos: {
codeHostType: string;
webUrl: string;
repoId: number;
repoName: string;
isFork: boolean;
isArchived: boolean;
externalWebUrl?: string | undefined;
repoDisplayName?: string | undefined;
imageUrl?: string | undefined;
indexedAt?: Date | undefined;
pushedAt?: Date | undefined;
defaultBranch?: string | undefined;
}[];
totalCount: number;
}>;
export declare const getFileSource: (request: FileSourceRequest) => Promise<{
path: string;
webUrl: string;
language: string;
repo: string;
source: string;
repoCodeHostType: string;
externalWebUrl?: string | undefined;
repoDisplayName?: string | undefined;
repoExternalWebUrl?: string | undefined;
}>;
export declare const listCommits: (queryParams: ListCommitsQueryParamsSchema) => Promise<{
commits: {
message: string;
date: string;
hash: string;
refs: string;
body: string;
author_name: string;
author_email: string;
}[];
totalCount: number;
}>;
/**
* Fetches a repository tree (or subtree union) from the Sourcebot tree API.
*
* @param request - Repository name, revision, and path selectors for the tree query
* @returns A tree response rooted at `tree` containing nested `tree`/`blob` nodes
*/
export declare const listTree: (request: ListTreeApiRequest) => Promise<ListTreeApiResponse>;
/**
* Asks a natural language question about the codebase using the Sourcebot AI agent.
* This is a blocking call that runs the full agent loop and returns when complete.
*
* @param request - The question and optional repo filters
* @returns The agent's answer, chat URL, sources, and metadata
*/
export declare const askCodebase: (request: AskCodebaseRequest) => Promise<AskCodebaseResponse>;
/**
* Lists the available language models configured on the Sourcebot instance.
*
* @returns Array of language model info objects
*/
export declare const listLanguageModels: () => Promise<ListLanguageModelsResponse>;