codewiki-mcp 1.1.0 → 1.1.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/cli.js CHANGED
@@ -43,14 +43,19 @@ async function main() {
43
43
  const port = Number.parseInt(values.port, 10) || 3000;
44
44
  const endpoint = values.endpoint;
45
45
  const config = loadConfig();
46
- const mcp = createMcpServer(config);
47
46
  const shutdown = async () => {
48
47
  await stopServer();
49
48
  process.exit(0);
50
49
  };
51
50
  process.on('SIGTERM', shutdown);
52
51
  process.on('SIGINT', shutdown);
53
- await startServer(mcp, { transport, port, endpoint });
52
+ if (transport === 'stdio') {
53
+ const mcp = createMcpServer(config);
54
+ await startServer(mcp, { transport, port, endpoint });
55
+ }
56
+ else {
57
+ await startServer(() => createMcpServer(config), { transport, port, endpoint });
58
+ }
54
59
  }
55
60
  main().catch((error) => {
56
61
  console.error(error);
package/dist/cli.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":";AAEA,OAAO,EAAE,SAAS,EAAE,MAAM,WAAW,CAAA;AACrC,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAA;AAC5C,OAAO,EAAE,eAAe,EAAE,WAAW,EAAE,UAAU,EAAE,MAAM,aAAa,CAAA;AAEtE,MAAM,IAAI,GAAG;;;;;;;;;;;;;;;;;;;;;CAqBZ,CAAC,IAAI,EAAE,CAAA;AAER,KAAK,UAAU,IAAI;IACjB,MAAM,EAAE,MAAM,EAAE,GAAG,SAAS,CAAC;QAC3B,OAAO,EAAE;YACP,IAAI,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,OAAO,EAAE,KAAK,EAAE;YACzC,GAAG,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,OAAO,EAAE,KAAK,EAAE;YACxC,IAAI,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,OAAO,EAAE,MAAM,EAAE;YACzC,QAAQ,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,OAAO,EAAE,MAAM,EAAE;YAC7C,IAAI,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,KAAK,EAAE,GAAG,EAAE,OAAO,EAAE,KAAK,EAAE;SACtD;QACD,MAAM,EAAE,IAAI;KACb,CAAC,CAAA;IAEF,IAAI,MAAM,CAAC,IAAI,EAAE,CAAC;QAChB,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,CAAA;QACjB,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;IACjB,CAAC;IAED,MAAM,SAAS,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,OAAO,CAAA;IACrE,MAAM,IAAI,GAAG,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAK,EAAE,EAAE,CAAC,IAAI,IAAI,CAAA;IACtD,MAAM,QAAQ,GAAG,MAAM,CAAC,QAAS,CAAA;IAEjC,MAAM,MAAM,GAAG,UAAU,EAAE,CAAA;IAC3B,MAAM,GAAG,GAAG,eAAe,CAAC,MAAM,CAAC,CAAA;IAEnC,MAAM,QAAQ,GAAG,KAAK,IAAI,EAAE;QAC1B,MAAM,UAAU,EAAE,CAAA;QAClB,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;IACjB,CAAC,CAAA;IACD,OAAO,CAAC,EAAE,CAAC,SAAS,EAAE,QAAQ,CAAC,CAAA;IAC/B,OAAO,CAAC,EAAE,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAA;IAE9B,MAAM,WAAW,CAAC,GAAG,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC,CAAA;AACvD,CAAC;AAED,IAAI,EAAE,CAAC,KAAK,CAAC,CAAC,KAAK,EAAE,EAAE;IACrB,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,CAAA;IACpB,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;AACjB,CAAC,CAAC,CAAA"}
1
+ {"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":";AAEA,OAAO,EAAE,SAAS,EAAE,MAAM,WAAW,CAAA;AACrC,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAA;AAC5C,OAAO,EAAE,eAAe,EAAE,WAAW,EAAE,UAAU,EAAE,MAAM,aAAa,CAAA;AAEtE,MAAM,IAAI,GAAG;;;;;;;;;;;;;;;;;;;;;CAqBZ,CAAC,IAAI,EAAE,CAAA;AAER,KAAK,UAAU,IAAI;IACjB,MAAM,EAAE,MAAM,EAAE,GAAG,SAAS,CAAC;QAC3B,OAAO,EAAE;YACP,IAAI,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,OAAO,EAAE,KAAK,EAAE;YACzC,GAAG,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,OAAO,EAAE,KAAK,EAAE;YACxC,IAAI,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,OAAO,EAAE,MAAM,EAAE;YACzC,QAAQ,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,OAAO,EAAE,MAAM,EAAE;YAC7C,IAAI,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,KAAK,EAAE,GAAG,EAAE,OAAO,EAAE,KAAK,EAAE;SACtD;QACD,MAAM,EAAE,IAAI;KACb,CAAC,CAAA;IAEF,IAAI,MAAM,CAAC,IAAI,EAAE,CAAC;QAChB,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,CAAA;QACjB,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;IACjB,CAAC;IAED,MAAM,SAAS,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,OAAO,CAAA;IACrE,MAAM,IAAI,GAAG,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAK,EAAE,EAAE,CAAC,IAAI,IAAI,CAAA;IACtD,MAAM,QAAQ,GAAG,MAAM,CAAC,QAAS,CAAA;IAEjC,MAAM,MAAM,GAAG,UAAU,EAAE,CAAA;IAE3B,MAAM,QAAQ,GAAG,KAAK,IAAI,EAAE;QAC1B,MAAM,UAAU,EAAE,CAAA;QAClB,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;IACjB,CAAC,CAAA;IACD,OAAO,CAAC,EAAE,CAAC,SAAS,EAAE,QAAQ,CAAC,CAAA;IAC/B,OAAO,CAAC,EAAE,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAA;IAE9B,IAAI,SAAS,KAAK,OAAO,EAAE,CAAC;QAC1B,MAAM,GAAG,GAAG,eAAe,CAAC,MAAM,CAAC,CAAA;QACnC,MAAM,WAAW,CAAC,GAAG,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC,CAAA;IACvD,CAAC;SAAM,CAAC;QACN,MAAM,WAAW,CAAC,GAAG,EAAE,CAAC,eAAe,CAAC,MAAM,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC,CAAA;IACjF,CAAC;AACH,CAAC;AAED,IAAI,EAAE,CAAC,KAAK,CAAC,CAAC,KAAK,EAAE,EAAE;IACrB,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,CAAA;IACpB,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;AACjB,CAAC,CAAC,CAAA"}
package/dist/index.d.ts CHANGED
@@ -9,7 +9,7 @@ export type { NormalizedRepo } from './lib/repo.js';
9
9
  export { extractKeyword } from './lib/extractKeyword.js';
10
10
  export { resolveRepoFromGitHub } from './lib/resolveRepo.js';
11
11
  export { createMcpServer, startServer, stopServer } from './server.js';
12
- export type { ServerOptions } from './server.js';
12
+ export type { ServerOptions, McpServerFactory } from './server.js';
13
13
  export { SearchReposInput, FetchRepoInput, AskRepoInput } from './schemas.js';
14
14
  export { registerSearchReposTool } from './tools/searchRepos.js';
15
15
  export { registerFetchRepoTool } from './tools/fetchRepo.js';
@@ -50,7 +50,11 @@ export function extractWrbFrames(responseText) {
50
50
  }
51
51
  export function extractRpcPayload(responseText, rpcId) {
52
52
  const frames = extractWrbFrames(responseText);
53
- const match = frames.find(frame => frame.rpcId === rpcId) ?? frames[0];
53
+ const match = frames.find(frame => frame.rpcId === rpcId);
54
+ if (!match) {
55
+ const available = frames.map(f => f.rpcId).join(', ');
56
+ throw new Error(`RPC ID "${rpcId}" not found in batchexecute response (available: ${available})`);
57
+ }
54
58
  return match.payload;
55
59
  }
56
60
  //# sourceMappingURL=batchexecute.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"batchexecute.js","sourceRoot":"","sources":["../../src/lib/batchexecute.ts"],"names":[],"mappings":"AAMA,MAAM,WAAW,GAAG,MAAM,CAAA;AAE1B,SAAS,eAAe,CAAC,IAAY;IACnC,MAAM,OAAO,GAAG,IAAI,CAAC,SAAS,EAAE,CAAA;IAChC,IAAI,OAAO,CAAC,UAAU,CAAC,WAAW,CAAC,EAAE,CAAC;QACpC,OAAO,OAAO,CAAC,KAAK,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC,SAAS,EAAE,CAAA;IACtD,CAAC;IACD,OAAO,IAAI,CAAA;AACb,CAAC;AAED,SAAS,aAAa,CAAC,KAAa;IAClC,IAAI,CAAC;QACH,OAAO,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAA;IAC1B,CAAC;IACD,MAAM,CAAC;QACL,OAAO,SAAS,CAAA;IAClB,CAAC;AACH,CAAC;AAED,SAAS,gBAAgB,CAAC,IAAa,EAAE,GAAe;IACtD,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC;QACzB,OAAM;IACR,CAAC;IAED,IAAI,IAAI,CAAC,MAAM,IAAI,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC,KAAK,QAAQ,IAAI,OAAO,IAAI,CAAC,CAAC,CAAC,KAAK,QAAQ,EAAE,CAAC;QAC5E,MAAM,KAAK,GAAG,IAAI,CAAC,CAAC,CAAC,CAAA;QACrB,MAAM,UAAU,GAAG,IAAI,CAAC,CAAC,CAAC,CAAA;QAC1B,MAAM,OAAO,GAAG,OAAO,UAAU,KAAK,QAAQ;YAC5C,CAAC,CAAC,CAAC,aAAa,CAAC,UAAU,CAAC,IAAI,UAAU,CAAC;YAC3C,CAAC,CAAC,UAAU,CAAA;QACd,GAAG,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,OAAO,EAAE,UAAU,EAAE,CAAC,CAAA;IAC1C,CAAC;IAED,KAAK,MAAM,KAAK,IAAI,IAAI,EAAE,CAAC;QACzB,gBAAgB,CAAC,KAAK,EAAE,GAAG,CAAC,CAAA;IAC9B,CAAC;AACH,CAAC;AAED,MAAM,UAAU,gBAAgB,CAAC,YAAoB;IACnD,MAAM,IAAI,GAAG,eAAe,CAAC,YAAY,CAAC,CAAA;IAC1C,MAAM,MAAM,GAAe,EAAE,CAAA;IAE7B,KAAK,MAAM,OAAO,IAAI,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,EAAE,CAAC;QAC1C,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,EAAE,CAAA;QAC3B,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC;YACjD,SAAQ;QACV,CAAC;QAED,MAAM,MAAM,GAAG,aAAa,CAAC,IAAI,CAAC,CAAA;QAClC,IAAI,MAAM,KAAK,SAAS,EAAE,CAAC;YACzB,gBAAgB,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;QAClC,CAAC;IACH,CAAC;IAED,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACxB,MAAM,IAAI,KAAK,CAAC,iDAAiD,CAAC,CAAA;IACpE,CAAC;IAED,OAAO,MAAM,CAAA;AACf,CAAC;AAED,MAAM,UAAU,iBAAiB,CAAC,YAAoB,EAAE,KAAa;IACnE,MAAM,MAAM,GAAG,gBAAgB,CAAC,YAAY,CAAC,CAAA;IAC7C,MAAM,KAAK,GAAG,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,KAAK,CAAC,KAAK,KAAK,KAAK,CAAC,IAAI,MAAM,CAAC,CAAC,CAAC,CAAA;IACtE,OAAO,KAAK,CAAC,OAAO,CAAA;AACtB,CAAC"}
1
+ {"version":3,"file":"batchexecute.js","sourceRoot":"","sources":["../../src/lib/batchexecute.ts"],"names":[],"mappings":"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"}
@@ -1,6 +1,10 @@
1
1
  import { extractRpcPayload } from './batchexecute.js';
2
2
  import { CodeWikiError } from './errors.js';
3
3
  import { normalizeRepoInput } from './repo.js';
4
+ /** RPC IDs for codewiki.google batchexecute endpoints */
5
+ const RPC_SEARCH = 'vyWDAf';
6
+ const RPC_FETCH = 'VSX6ub';
7
+ const RPC_ASK = 'EgIxfe';
4
8
  export class CodeWikiClient {
5
9
  baseUrl;
6
10
  timeoutMs;
@@ -22,7 +26,7 @@ export class CodeWikiClient {
22
26
  }
23
27
  async searchRepositories(query, limit = 10) {
24
28
  const start = performance.now();
25
- const { payload, bytes } = await this.callRpc('vyWDAf', [query, limit, query, 0], { sourcePath: '/' });
29
+ const { payload, bytes } = await this.callRpc(RPC_SEARCH, [query, limit, query, 0], { sourcePath: '/' });
26
30
  const rows = Array.isArray(payload) && Array.isArray(payload[0])
27
31
  ? payload[0]
28
32
  : [];
@@ -56,7 +60,7 @@ export class CodeWikiClient {
56
60
  async fetchRepository(repoInput) {
57
61
  const start = performance.now();
58
62
  const repo = normalizeRepoInput(repoInput);
59
- const { payload, bytes } = await this.callRpc('VSX6ub', [repo.repoUrl], {
63
+ const { payload, bytes } = await this.callRpc(RPC_FETCH, [repo.repoUrl], {
60
64
  sourcePath: repo.sourcePath,
61
65
  });
62
66
  const root = Array.isArray(payload) ? payload : [];
@@ -119,7 +123,7 @@ export class CodeWikiClient {
119
123
  ...history.map(item => [item.content, item.role === 'assistant' ? 'model' : 'user']),
120
124
  [question, 'user'],
121
125
  ];
122
- const { payload, bytes } = await this.callRpc('EgIxfe', [messages, [null, repo.repoUrl]], {
126
+ const { payload, bytes } = await this.callRpc(RPC_ASK, [messages, [null, repo.repoUrl]], {
123
127
  sourcePath: repo.sourcePath,
124
128
  });
125
129
  let data;
@@ -1 +1 @@
1
- {"version":3,"file":"codewikiClient.js","sourceRoot":"","sources":["../../src/lib/codewikiClient.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"codewikiClient.js","sourceRoot":"","sources":["../../src/lib/codewikiClient.ts"],"names":[],"mappings":"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"}
@@ -13,8 +13,38 @@ const STOP_WORDS = new Set([
13
13
  'have', 'has', 'had', 'do', 'did', 'will', 'shall',
14
14
  'of', 'in', 'to', 'on', 'at', 'by', 'up', 'it', 'its',
15
15
  ]);
16
+ const STOP_WORDS_RU = new Set([
17
+ 'репозиторий', 'репо', 'библиотека', 'библиотеки', 'фреймворк', 'пакет', 'модуль',
18
+ 'проект', 'инструмент', 'код', 'исходник', 'открытый',
19
+ 'как', 'что', 'где', 'какой', 'какая', 'какие', 'какого', 'кто', 'когда', 'зачем', 'почему',
20
+ 'такое', 'такой', 'такая', 'такие', 'таких', 'такого',
21
+ 'покажи', 'расскажи', 'найди', 'найти', 'ищи', 'искать', 'получи', 'посмотри', 'дай',
22
+ 'пожалуйста', 'можно', 'можешь', 'нужно', 'нужна', 'нужен', 'нужны',
23
+ 'это', 'этот', 'эта', 'эти', 'этого', 'тот', 'та', 'те',
24
+ 'для', 'про', 'при', 'или', 'его', 'её', 'мне', 'меня', 'себя',
25
+ 'есть', 'был', 'была', 'были', 'быть', 'будет',
26
+ 'все', 'всё', 'весь', 'вся', 'всех',
27
+ 'из', 'на', 'по', 'за', 'от', 'до', 'об',
28
+ 'не', 'ни', 'но', 'да', 'же', 'ли', 'бы',
29
+ 'управления', 'управление', 'состоянием', 'состояние',
30
+ 'работы', 'работа', 'устроен', 'устроена', 'работает',
31
+ 'лучшая', 'лучший', 'лучшие', 'лучше', 'самый', 'самая', 'самые',
32
+ ]);
16
33
  const SKIP_POS = new Set(['PUNCT', 'SPACE', 'DET', 'ADP', 'CCONJ', 'SCONJ', 'AUX', 'PART', 'INTJ']);
34
+ const HAS_NON_LATIN = /[^\u0000-\u007F]/;
35
+ function extractKeywordSimple(text) {
36
+ const tokens = text
37
+ .split(/[\s,.:;!?()[\]{}"'«»]+/)
38
+ .filter((t) => t.length > 1)
39
+ .filter((t) => !STOP_WORDS.has(t.toLowerCase()) && !STOP_WORDS_RU.has(t.toLowerCase()));
40
+ // Prefer Latin/mixed tokens (likely project names) over pure-Cyrillic tokens
41
+ const latin = tokens.filter((t) => /[a-zA-Z0-9]/.test(t));
42
+ return latin[0] ?? tokens[0] ?? null;
43
+ }
17
44
  export function extractKeyword(text) {
45
+ if (HAS_NON_LATIN.test(text)) {
46
+ return extractKeywordSimple(text);
47
+ }
18
48
  const doc = nlp.readDoc(text);
19
49
  const tokens = doc.tokens();
20
50
  // First pass: look for NOUN/PROPN that aren't stop words
@@ -1 +1 @@
1
- {"version":3,"file":"extractKeyword.js","sourceRoot":"","sources":["../../src/lib/extractKeyword.ts"],"names":[],"mappings":"AAAA,OAAO,OAAO,MAAM,UAAU,CAAA;AAC9B,OAAO,KAAK,MAAM,yBAAyB,CAAA;AAE3C,MAAM,GAAG,GAAG,OAAO,CAAC,KAAK,CAAC,CAAA;AAC1B,MAAM,GAAG,GAAG,GAAG,CAAC,GAAG,CAAA;AAEnB,MAAM,UAAU,GAAG,IAAI,GAAG,CAAC;IACzB,MAAM,EAAE,YAAY,EAAE,SAAS,EAAE,WAAW,EAAE,SAAS,EAAE,QAAQ;IACjE,SAAS,EAAE,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,QAAQ;IAC/D,KAAK,EAAE,GAAG,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM;IAChE,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM;IAC7D,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,KAAK,EAAE,OAAO,EAAE,MAAM;IAC9D,QAAQ,EAAE,KAAK,EAAE,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,KAAK,EAAE,OAAO;IAC3D,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO;IACjD,MAAM,EAAE,KAAK,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,MAAM,EAAE,OAAO;IAClD,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK;CACtD,CAAC,CAAA;AAEF,MAAM,QAAQ,GAAG,IAAI,GAAG,CAAC,CAAC,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC,CAAA;AAEnG,MAAM,UAAU,cAAc,CAAC,IAAY;IACzC,MAAM,GAAG,GAAG,GAAG,CAAC,OAAO,CAAC,IAAI,CAAC,CAAA;IAC7B,MAAM,MAAM,GAAG,GAAG,CAAC,MAAM,EAAE,CAAA;IAE3B,yDAAyD;IACzD,MAAM,KAAK,GAAa,EAAE,CAAA;IAC1B,MAAM,QAAQ,GAAa,EAAE,CAAA;IAE7B,MAAM,CAAC,IAAI,CAAC,CAAC,KAAU,EAAE,EAAE;QACzB,MAAM,GAAG,GAAG,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAW,CAAA;QACxC,MAAM,KAAK,GAAG,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,CAAW,CAAA;QAC5C,MAAM,KAAK,GAAG,KAAK,CAAC,WAAW,EAAE,CAAA;QAEjC,IAAI,QAAQ,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,KAAK,CAAC,MAAM,IAAI,CAAC;YAAE,OAAM;QAElD,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC;YAC3B,IAAI,GAAG,KAAK,MAAM,IAAI,GAAG,KAAK,OAAO,EAAE,CAAC;gBACtC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;YACnB,CAAC;iBAAM,CAAC;gBACN,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;YACtB,CAAC;QACH,CAAC;IACH,CAAC,CAAC,CAAA;IAEF,0DAA0D;IAC1D,OAAO,KAAK,CAAC,CAAC,CAAC,IAAI,QAAQ,CAAC,CAAC,CAAC,IAAI,IAAI,CAAA;AACxC,CAAC"}
1
+ {"version":3,"file":"extractKeyword.js","sourceRoot":"","sources":["../../src/lib/extractKeyword.ts"],"names":[],"mappings":"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"}
package/dist/lib/repo.js CHANGED
@@ -7,10 +7,13 @@ export function normalizeRepoInput(input) {
7
7
  }
8
8
  if (/^https?:\/\//i.test(raw)) {
9
9
  const url = new URL(raw);
10
+ if (url.hostname !== 'github.com') {
11
+ throw new Error(`Only GitHub repositories are supported, got host: ${url.hostname}`);
12
+ }
10
13
  const repoPath = url.pathname.replace(/^\/+|\/+$/g, '');
11
14
  const parts = repoPath.split('/').filter(Boolean);
12
15
  if (parts.length < 2) {
13
- throw new Error('Expected repository URL in the format https://host/owner/repo');
16
+ throw new Error('Expected repository URL in the format https://github.com/owner/repo');
14
17
  }
15
18
  const normalizedPath = `${parts[0]}/${parts[1]}`;
16
19
  return {
@@ -1 +1 @@
1
- {"version":3,"file":"repo.js","sourceRoot":"","sources":["../../src/lib/repo.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAA;AACpD,OAAO,EAAE,qBAAqB,EAAE,MAAM,kBAAkB,CAAA;AASxD,MAAM,UAAU,kBAAkB,CAAC,KAAa;IAC9C,MAAM,GAAG,GAAG,KAAK,CAAC,IAAI,EAAE,CAAA;IACxB,IAAI,CAAC,GAAG,EAAE,CAAC;QACT,MAAM,IAAI,KAAK,CAAC,2BAA2B,CAAC,CAAA;IAC9C,CAAC;IAED,IAAI,eAAe,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC;QAC9B,MAAM,GAAG,GAAG,IAAI,GAAG,CAAC,GAAG,CAAC,CAAA;QACxB,MAAM,QAAQ,GAAG,GAAG,CAAC,QAAQ,CAAC,OAAO,CAAC,YAAY,EAAE,EAAE,CAAC,CAAA;QACvD,MAAM,KAAK,GAAG,QAAQ,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAA;QACjD,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACrB,MAAM,IAAI,KAAK,CAAC,+DAA+D,CAAC,CAAA;QAClF,CAAC;QAED,MAAM,cAAc,GAAG,GAAG,KAAK,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,CAAC,CAAC,EAAE,CAAA;QAChD,OAAO;YACL,IAAI,EAAE,GAAG,CAAC,QAAQ;YAClB,QAAQ,EAAE,cAAc;YACxB,OAAO,EAAE,WAAW,GAAG,CAAC,QAAQ,IAAI,cAAc,EAAE;YACpD,UAAU,EAAE,IAAI,GAAG,CAAC,QAAQ,IAAI,cAAc,EAAE;SACjD,CAAA;IACH,CAAC;IAED,MAAM,KAAK,GAAG,GAAG,CAAC,OAAO,CAAC,YAAY,EAAE,EAAE,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAA;IACtE,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACvB,MAAM,IAAI,KAAK,CAAC,sDAAsD,CAAC,CAAA;IACzE,CAAC;IAED,MAAM,QAAQ,GAAG,GAAG,KAAK,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,CAAC,CAAC,EAAE,CAAA;IAC1C,OAAO;QACL,IAAI,EAAE,YAAY;QAClB,QAAQ;QACR,OAAO,EAAE,sBAAsB,QAAQ,EAAE;QACzC,UAAU,EAAE,eAAe,QAAQ,EAAE;KACtC,CAAA;AACH,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,gBAAgB,CACpC,KAAa,EACb,MAA+D;IAE/D,MAAM,GAAG,GAAG,KAAK,CAAC,IAAI,EAAE,CAAA;IAExB,aAAa;IACb,IAAI,eAAe,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC;QAC9B,OAAO,kBAAkB,CAAC,GAAG,CAAC,CAAA;IAChC,CAAC;IAED,oBAAoB;IACpB,MAAM,KAAK,GAAG,GAAG,CAAC,OAAO,CAAC,YAAY,EAAE,EAAE,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAA;IACtE,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACvB,OAAO,kBAAkB,CAAC,GAAG,CAAC,CAAA;IAChC,CAAC;IAED,qDAAqD;IACrD,MAAM,OAAO,GAAG,cAAc,CAAC,GAAG,CAAC,IAAI,GAAG,CAAA;IAC1C,MAAM,QAAQ,GAAG,MAAM,qBAAqB,CAAC,OAAO,EAAE,MAAM,IAAI,EAAE,cAAc,EAAE,MAAM,EAAE,CAAC,CAAA;IAC3F,OAAO,kBAAkB,CAAC,QAAQ,CAAC,CAAA;AACrC,CAAC"}
1
+ {"version":3,"file":"repo.js","sourceRoot":"","sources":["../../src/lib/repo.ts"],"names":[],"mappings":"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"}
package/dist/server.d.ts CHANGED
@@ -5,6 +5,7 @@ export interface ServerOptions {
5
5
  port?: number;
6
6
  endpoint?: string;
7
7
  }
8
+ export type McpServerFactory = () => McpServer;
8
9
  export declare function createMcpServer(config: CodeWikiConfig): McpServer;
9
- export declare function startServer(mcp: McpServer, options: ServerOptions): Promise<void>;
10
+ export declare function startServer(mcpOrFactory: McpServer | McpServerFactory, options: ServerOptions): Promise<void>;
10
11
  export declare function stopServer(): Promise<void>;
package/dist/server.js CHANGED
@@ -4,15 +4,20 @@ import { McpServer } from '@modelcontextprotocol/sdk/server/mcp.js';
4
4
  import { StdioServerTransport } from '@modelcontextprotocol/sdk/server/stdio.js';
5
5
  import { StreamableHTTPServerTransport } from '@modelcontextprotocol/sdk/server/streamableHttp.js';
6
6
  import { SSEServerTransport } from '@modelcontextprotocol/sdk/server/sse.js';
7
+ import { isInitializeRequest } from '@modelcontextprotocol/sdk/types.js';
8
+ import { readFileSync } from 'node:fs';
9
+ import { fileURLToPath } from 'node:url';
10
+ import { dirname, resolve } from 'node:path';
7
11
  import { CodeWikiClient } from './lib/codewikiClient.js';
8
12
  import { registerSearchReposTool } from './tools/searchRepos.js';
9
13
  import { registerFetchRepoTool } from './tools/fetchRepo.js';
10
14
  import { registerAskRepoTool } from './tools/askRepo.js';
11
- const VERSION = '0.2.0';
15
+ const __dirname = dirname(fileURLToPath(import.meta.url));
16
+ const pkg = JSON.parse(readFileSync(resolve(__dirname, '..', 'package.json'), 'utf-8'));
12
17
  export function createMcpServer(config) {
13
18
  const mcp = new McpServer({
14
19
  name: 'codewiki-mcp',
15
- version: VERSION,
20
+ version: pkg.version,
16
21
  });
17
22
  const client = CodeWikiClient.fromConfig(config);
18
23
  registerSearchReposTool(mcp, client);
@@ -21,26 +26,99 @@ export function createMcpServer(config) {
21
26
  return mcp;
22
27
  }
23
28
  let httpServer;
24
- export async function startServer(mcp, options) {
29
+ let sessionCleanup;
30
+ export async function startServer(mcpOrFactory, options) {
31
+ if (httpServer) {
32
+ throw new Error('Server is already running. Call stopServer() before starting a new one.');
33
+ }
25
34
  const { transport, port = 3000, endpoint = '/mcp' } = options;
35
+ const getMcp = typeof mcpOrFactory === 'function' ? mcpOrFactory : () => mcpOrFactory;
26
36
  if (transport === 'stdio') {
27
37
  const stdioTransport = new StdioServerTransport();
28
- await mcp.connect(stdioTransport);
38
+ await getMcp().connect(stdioTransport);
29
39
  return;
30
40
  }
31
41
  if (transport === 'http') {
32
- const httpTransport = new StreamableHTTPServerTransport({
33
- sessionIdGenerator: () => randomUUID(),
34
- });
42
+ if (typeof mcpOrFactory !== 'function') {
43
+ throw new Error('HTTP transport requires a McpServerFactory (a function returning a new McpServer) ' +
44
+ 'because each HTTP client needs its own McpServer instance. ' +
45
+ 'Pass () => createMcpServer(config) instead of a single McpServer.');
46
+ }
47
+ const sessions = new Map();
48
+ sessionCleanup = async () => {
49
+ for (const [id, transport] of sessions) {
50
+ try {
51
+ await transport.close();
52
+ }
53
+ catch { /* ignore */ }
54
+ sessions.delete(id);
55
+ }
56
+ };
35
57
  httpServer = createServer(async (req, res) => {
36
- if (req.url === endpoint) {
37
- await httpTransport.handleRequest(req, res);
58
+ try {
59
+ const url = new URL(req.url ?? '/', `http://localhost:${port}`);
60
+ if (url.pathname !== endpoint) {
61
+ res.writeHead(404).end('Not Found');
62
+ return;
63
+ }
64
+ const sessionId = req.headers['mcp-session-id'];
65
+ if (req.method === 'GET' || req.method === 'DELETE') {
66
+ const transport = sessionId ? sessions.get(sessionId) : undefined;
67
+ if (!transport) {
68
+ res.writeHead(400).end('Invalid or missing session ID');
69
+ return;
70
+ }
71
+ await transport.handleRequest(req, res);
72
+ return;
73
+ }
74
+ if (req.method === 'POST') {
75
+ if (sessionId && sessions.has(sessionId)) {
76
+ await sessions.get(sessionId).handleRequest(req, res);
77
+ return;
78
+ }
79
+ // Parse body to check if this is an initialization request
80
+ const chunks = [];
81
+ for await (const chunk of req) {
82
+ chunks.push(typeof chunk === 'string' ? Buffer.from(chunk) : chunk);
83
+ }
84
+ const bodyText = Buffer.concat(chunks).toString('utf-8');
85
+ let body;
86
+ try {
87
+ body = JSON.parse(bodyText);
88
+ }
89
+ catch {
90
+ res.writeHead(400).end('Invalid JSON');
91
+ return;
92
+ }
93
+ if (!isInitializeRequest(body)) {
94
+ res.writeHead(400).end('Bad Request: No valid session ID provided');
95
+ return;
96
+ }
97
+ const httpTransport = new StreamableHTTPServerTransport({
98
+ sessionIdGenerator: () => randomUUID(),
99
+ onsessioninitialized: (id) => {
100
+ sessions.set(id, httpTransport);
101
+ },
102
+ });
103
+ httpTransport.onclose = () => {
104
+ const sid = httpTransport.sessionId;
105
+ if (sid)
106
+ sessions.delete(sid);
107
+ };
108
+ const sessionMcp = mcpOrFactory();
109
+ await sessionMcp.connect(httpTransport);
110
+ await httpTransport.handleRequest(req, res, body);
111
+ return;
112
+ }
113
+ res.writeHead(405).end('Method Not Allowed');
38
114
  }
39
- else {
40
- res.writeHead(404).end('Not Found');
115
+ catch (error) {
116
+ console.error('Error handling MCP request:', error);
117
+ if (!res.headersSent) {
118
+ res.writeHead(500).end('Internal Server Error');
119
+ }
41
120
  }
42
121
  });
43
- await mcp.connect(httpTransport);
44
122
  await new Promise((resolve) => {
45
123
  httpServer.listen(port, () => {
46
124
  console.error(`codewiki-mcp HTTP server listening on http://localhost:${port}${endpoint}`);
@@ -50,7 +128,21 @@ export async function startServer(mcp, options) {
50
128
  return;
51
129
  }
52
130
  if (transport === 'sse') {
131
+ if (typeof mcpOrFactory !== 'function') {
132
+ throw new Error('SSE transport requires a McpServerFactory (a function returning a new McpServer) ' +
133
+ 'because each SSE client needs its own McpServer instance. ' +
134
+ 'Pass () => createMcpServer(config) instead of a single McpServer.');
135
+ }
53
136
  const sessions = new Map();
137
+ sessionCleanup = async () => {
138
+ for (const [id, transport] of sessions) {
139
+ try {
140
+ await transport.close();
141
+ }
142
+ catch { /* ignore */ }
143
+ sessions.delete(id);
144
+ }
145
+ };
54
146
  httpServer = createServer(async (req, res) => {
55
147
  const url = new URL(req.url ?? '/', `http://localhost:${port}`);
56
148
  if (url.pathname === endpoint && req.method === 'GET') {
@@ -59,7 +151,8 @@ export async function startServer(mcp, options) {
59
151
  sseTransport.onclose = () => {
60
152
  sessions.delete(sseTransport.sessionId);
61
153
  };
62
- await mcp.connect(sseTransport);
154
+ const sessionMcp = mcpOrFactory();
155
+ await sessionMcp.connect(sseTransport);
63
156
  return;
64
157
  }
65
158
  if (url.pathname === `${endpoint}/message` && req.method === 'POST') {
@@ -84,6 +177,10 @@ export async function startServer(mcp, options) {
84
177
  }
85
178
  }
86
179
  export async function stopServer() {
180
+ if (sessionCleanup) {
181
+ await sessionCleanup();
182
+ sessionCleanup = undefined;
183
+ }
87
184
  if (httpServer) {
88
185
  await new Promise((resolve, reject) => {
89
186
  httpServer.close((err) => (err ? reject(err) : resolve()));
@@ -1 +1 @@
1
- {"version":3,"file":"server.js","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"server.js","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":"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"}
@@ -12,13 +12,14 @@ export function registerSearchReposTool(mcp, client) {
12
12
  try {
13
13
  const { query, limit } = parsed.data;
14
14
  const { data: items, meta } = await client.searchRepositories(query, limit);
15
+ const cleanItems = items.map(({ raw, ...rest }) => rest);
15
16
  return {
16
17
  content: [{
17
18
  type: 'text',
18
19
  text: JSON.stringify({
19
20
  query,
20
- count: items.length,
21
- items,
21
+ count: cleanItems.length,
22
+ items: cleanItems,
22
23
  meta,
23
24
  }, null, 2),
24
25
  }],
@@ -1 +1 @@
1
- {"version":3,"file":"searchRepos.js","sourceRoot":"","sources":["../../src/tools/searchRepos.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAA;AACjD,OAAO,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAA;AAEhD,MAAM,UAAU,uBAAuB,CAAC,GAAc,EAAE,MAAsB;IAC5E,GAAG,CAAC,IAAI,CACN,uBAAuB,EACvB,gDAAgD,EAChD,gBAAgB,CAAC,KAAK,EACtB,KAAK,EAAE,QAAQ,EAAE,EAAE;QACjB,MAAM,MAAM,GAAG,gBAAgB,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAA;QACnD,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;YACpB,OAAO;gBACL,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,sBAAsB,MAAM,CAAC,KAAK,CAAC,OAAO,EAAE,EAAE,CAAC;gBAC/E,OAAO,EAAE,IAAI;aACd,CAAA;QACH,CAAC;QAED,IAAI,CAAC;YACH,MAAM,EAAE,KAAK,EAAE,KAAK,EAAE,GAAG,MAAM,CAAC,IAAI,CAAA;YACpC,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,GAAG,MAAM,MAAM,CAAC,kBAAkB,CAAC,KAAK,EAAE,KAAK,CAAC,CAAA;YAE3E,OAAO;gBACL,OAAO,EAAE,CAAC;wBACR,IAAI,EAAE,MAAM;wBACZ,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC;4BACnB,KAAK;4BACL,KAAK,EAAE,KAAK,CAAC,MAAM;4BACnB,KAAK;4BACL,IAAI;yBACL,EAAE,IAAI,EAAE,CAAC,CAAC;qBACZ,CAAC;aACH,CAAA;QACH,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,OAAO,cAAc,CAAC,GAAG,CAAC,CAAA;QAC5B,CAAC;IACH,CAAC,CACF,CAAA;AACH,CAAC"}
1
+ {"version":3,"file":"searchRepos.js","sourceRoot":"","sources":["../../src/tools/searchRepos.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAA;AACjD,OAAO,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAA;AAEhD,MAAM,UAAU,uBAAuB,CAAC,GAAc,EAAE,MAAsB;IAC5E,GAAG,CAAC,IAAI,CACN,uBAAuB,EACvB,gDAAgD,EAChD,gBAAgB,CAAC,KAAK,EACtB,KAAK,EAAE,QAAQ,EAAE,EAAE;QACjB,MAAM,MAAM,GAAG,gBAAgB,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAA;QACnD,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;YACpB,OAAO;gBACL,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,sBAAsB,MAAM,CAAC,KAAK,CAAC,OAAO,EAAE,EAAE,CAAC;gBAC/E,OAAO,EAAE,IAAI;aACd,CAAA;QACH,CAAC;QAED,IAAI,CAAC;YACH,MAAM,EAAE,KAAK,EAAE,KAAK,EAAE,GAAG,MAAM,CAAC,IAAI,CAAA;YACpC,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,GAAG,MAAM,MAAM,CAAC,kBAAkB,CAAC,KAAK,EAAE,KAAK,CAAC,CAAA;YAE3E,MAAM,UAAU,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC,EAAE,GAAG,EAAE,GAAG,IAAI,EAAE,EAAE,EAAE,CAAC,IAAI,CAAC,CAAA;YACxD,OAAO;gBACL,OAAO,EAAE,CAAC;wBACR,IAAI,EAAE,MAAM;wBACZ,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC;4BACnB,KAAK;4BACL,KAAK,EAAE,UAAU,CAAC,MAAM;4BACxB,KAAK,EAAE,UAAU;4BACjB,IAAI;yBACL,EAAE,IAAI,EAAE,CAAC,CAAC;qBACZ,CAAC;aACH,CAAA;QACH,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,OAAO,cAAc,CAAC,GAAG,CAAC,CAAA;QAC5B,CAAC;IACH,CAAC,CACF,CAAA;AACH,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "codewiki-mcp",
3
- "version": "1.1.0",
3
+ "version": "1.1.2",
4
4
  "mcpName": "io.github.izzzzzi/codewiki-mcp",
5
5
  "description": "MCP server for codewiki.google",
6
6
  "type": "module",