@index9/mcp 1.0.18 → 1.0.20

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.
Files changed (37) hide show
  1. package/README.md +82 -31
  2. package/dist/client.d.ts +3 -6
  3. package/dist/client.d.ts.map +1 -1
  4. package/dist/client.js +7 -27
  5. package/dist/mcp.d.ts.map +1 -1
  6. package/dist/mcp.js +42 -85
  7. package/dist/schemas.d.ts +130 -50
  8. package/dist/schemas.d.ts.map +1 -1
  9. package/dist/schemas.js +165 -84
  10. package/dist/tools/find_models.d.ts +3 -0
  11. package/dist/tools/find_models.d.ts.map +1 -0
  12. package/dist/tools/find_models.js +4 -0
  13. package/dist/tools/test_model.d.ts.map +1 -1
  14. package/dist/tools/test_model.js +1 -1
  15. package/dist/types/api.d.ts +33 -49
  16. package/dist/types/api.d.ts.map +1 -1
  17. package/dist/types/models.d.ts +3 -7
  18. package/dist/types/models.d.ts.map +1 -1
  19. package/dist/types/models.js +1 -1
  20. package/dist/utils/rateLimiter.d.ts +1 -1
  21. package/dist/utils/rateLimiter.js +1 -1
  22. package/package.json +3 -3
  23. package/dist/tools/compare_models.d.ts +0 -3
  24. package/dist/tools/compare_models.d.ts.map +0 -1
  25. package/dist/tools/compare_models.js +0 -4
  26. package/dist/tools/get_capabilities.d.ts +0 -9
  27. package/dist/tools/get_capabilities.d.ts.map +0 -1
  28. package/dist/tools/get_capabilities.js +0 -19
  29. package/dist/tools/list_models.d.ts +0 -23
  30. package/dist/tools/list_models.d.ts.map +0 -1
  31. package/dist/tools/list_models.js +0 -25
  32. package/dist/tools/recommend_model.d.ts +0 -3
  33. package/dist/tools/recommend_model.d.ts.map +0 -1
  34. package/dist/tools/recommend_model.js +0 -4
  35. package/dist/tools/search_models.d.ts +0 -14
  36. package/dist/tools/search_models.d.ts.map +0 -1
  37. package/dist/tools/search_models.js +0 -5
package/dist/schemas.js CHANGED
@@ -1,63 +1,53 @@
1
1
  import { z } from "zod";
2
2
  /**
3
- * List Models Tool Schema
4
- * Filters AI models using exact technical criteria
3
+ * Find Models Tool Schema
4
+ * Unified search and filter for AI models
5
5
  */
6
- export const listModelsSchema = z.object({
7
- provider: z
6
+ export const findModelsSchema = z.object({
7
+ query: z
8
8
  .string()
9
- .describe("Filter by model provider (e.g., openai, anthropic, google)")
10
- .optional(),
11
- owner: z.string().describe("Filter by model owner organization").optional(),
12
- min_context: z.number().min(0).describe("Minimum context window size in tokens").optional(),
13
- modality: z
14
- .enum(["text", "vision", "audio", "video", "image"])
15
- .describe("Primary input modality the model supports")
16
- .optional(),
17
- supports_tool_calling: z
18
- .boolean()
19
- .describe("Filter to models that support function/tool calling")
9
+ .max(500)
10
+ .describe("Natural language search query describing desired model characteristics (e.g., 'fastest coding model under $1', 'vision model with 128k context', 'cheapest tool-calling model'). Uses semantic search with fuzzy matching. Optional - omit to use filters only.")
20
11
  .optional(),
21
- supports_json_mode: z
22
- .boolean()
23
- .describe("Filter to models with native JSON output mode")
24
- .optional(),
25
- tokenizer: z
12
+ provider: z
26
13
  .string()
27
- .describe("Filter by tokenizer type (e.g., cl100k_base, tiktoken)")
14
+ .describe("Filter by provider name(s). Comma-separated for multiple (e.g., 'openai,anthropic'). Case-insensitive.")
15
+ .optional(),
16
+ min_context: z
17
+ .number()
18
+ .min(0)
19
+ .describe("Minimum context window size in tokens (e.g., 8192, 32000, 128000). Filters out models with smaller context windows. Common values: 4096 (small), 32000 (medium), 128000+ (large).")
28
20
  .optional(),
29
- output_modality: z
30
- .enum(["text", "image", "embeddings"])
31
- .describe("Type of output the model generates")
21
+ max_context: z
22
+ .number()
23
+ .min(0)
24
+ .describe("Maximum context window size in tokens. Filters out models with larger context windows. Use to find smaller, faster models.")
32
25
  .optional(),
33
26
  max_price_per_m: z
34
27
  .number()
35
28
  .min(0)
36
- .describe("Maximum price per million tokens (combined input + output)")
29
+ .describe("Maximum acceptable price per million input tokens in USD (e.g., 0.5 for $0.50/M tokens). Filters out more expensive models. Note: only considers input pricing for filtering.")
30
+ .optional(),
31
+ capabilities: z
32
+ .array(z.enum(["vision", "audio", "tool_calling", "json_mode", "video"]))
33
+ .describe("Required capabilities array - model must support ALL specified capabilities (AND logic). Examples: ['vision'] for image input, ['tool_calling', 'json_mode'] for structured outputs, ['vision', 'tool_calling'] for multimodal agents. Available: vision, audio, tool_calling, json_mode, video.")
34
+ .optional(),
35
+ sort_by: z
36
+ .enum(["relevance", "price_asc", "price_desc", "date_desc", "context_desc"])
37
+ .default("relevance")
38
+ .describe("Sort order for results. Options: 'relevance' (best semantic match, default), 'price_asc' (cheapest first by input price), 'price_desc' (most expensive first), 'date_desc' (newest models first), 'context_desc' (largest context window first). Defaults to 'relevance'.")
37
39
  .optional(),
38
- limit: z.number().min(1).max(100).default(10).describe("Number of results to return (1-100)"),
39
- });
40
- /**
41
- * Search Models Tool Schema
42
- * Natural language semantic search across AI models
43
- */
44
- export const searchModelsSchema = z.object({
45
- query: z
46
- .string()
47
- .min(1)
48
- .describe("Natural language query describing desired model characteristics (e.g., 'fast cheap code generation model')"),
49
40
  limit: z
50
41
  .number()
51
42
  .min(1)
52
- .max(50)
43
+ .max(100)
53
44
  .default(10)
54
- .describe("Maximum number of results to return (1-50)"),
55
- threshold: z
45
+ .describe("Maximum number of results to return (1-100). Defaults to 10. Use higher values (20-50) for broad exploration, lower values (5-10) for focused comparisons."),
46
+ offset: z
56
47
  .number()
57
48
  .min(0)
58
- .max(1)
59
- .default(0.5)
60
- .describe("Minimum similarity score for results (0-1, where 1 is exact match)"),
49
+ .default(0)
50
+ .describe("Number of results to skip for pagination (0-based). Defaults to 0. Example: offset=10 with limit=10 returns results 11-20. Use with 'total' in response for pagination."),
61
51
  });
62
52
  /**
63
53
  * Get Model Tool Schema
@@ -67,61 +57,152 @@ export const getModelSchema = z.object({
67
57
  model_id: z
68
58
  .string()
69
59
  .min(1)
70
- .describe("Exact model identifier (e.g., 'openai/gpt-4', 'anthropic/claude-sonnet-4')"),
60
+ .describe("Exact model identifier in format 'provider/model-name' (e.g., 'openai/gpt-5.2', 'anthropic/claude-opus-4.5', 'google/gemini-2.5-flash-preview-09-2025'). Case-sensitive. Use find_models first to discover valid model IDs. Returns 404 if model not found."),
71
61
  });
72
62
  /**
73
- * Compare Models Tool Schema
74
- * Side-by-side comparison of multiple models
63
+ * Test Model Tool Schema
64
+ * Run live API tests against models via OpenRouter
75
65
  */
76
- export const compareModelsSchema = z.object({
66
+ export const testModelSchema = z.object({
77
67
  model_ids: z
78
68
  .array(z.string())
79
- .min(2)
80
- .max(10)
81
- .describe("Array of 2-10 model IDs to compare side-by-side"),
82
- });
83
- /**
84
- * Recommend Model Tool Schema
85
- * AI-powered model recommendations based on use case
86
- */
87
- export const recommendModelSchema = z.object({
88
- use_case: z
89
- .string()
90
69
  .min(1)
91
- .describe("Description of your use case (e.g., 'coding assistant', 'customer support chatbot', 'RAG pipeline with long documents')"),
92
- max_price_per_m: z
70
+ .max(5)
71
+ .describe("Array of 1-5 model IDs to test simultaneously in format 'provider/model-name' (e.g., ['openai/gpt-5.1-codex-max', 'anthropic/claude-haiku-4.5']). All models receive identical prompts. Use find_models or get_model first to identify model IDs."),
72
+ test_type: z
73
+ .enum(["quick", "code", "reasoning", "instruction", "tool_calling"])
74
+ .default("quick")
75
+ .describe("Preset test scenario. Ignored if custom 'prompt' provided. Options: 'quick' (simple math, fastest), 'code' (function generation), 'reasoning' (logic puzzle), 'instruction' (following complex directions), 'tool_calling' (function calling capability). Defaults to 'quick'."),
76
+ prompt: z
77
+ .string()
78
+ .describe("Custom user message to send to all models. Overrides 'test_type' when provided. Use for debugging specific issues, comparing exact outputs, or testing domain-specific prompts. Example: 'Write a Python function to validate email addresses'.")
79
+ .optional(),
80
+ max_tokens: z
93
81
  .number()
94
- .min(0)
95
- .describe("Budget constraint: maximum acceptable price per million tokens")
82
+ .min(1)
83
+ .max(8192)
84
+ .default(1000)
85
+ .describe("Maximum tokens for model response (1-8192). Higher values allow longer outputs but increase cost and latency. Defaults to 1000. Use 100-500 for quick tests, 1000-2000 for code/reasoning, 4000+ for long-form content.")
96
86
  .optional(),
97
- min_context: z
87
+ temperature: z
98
88
  .number()
99
89
  .min(0)
100
- .describe("Minimum required context window size in tokens")
90
+ .max(2)
91
+ .describe("Sampling temperature (0-2). Lower values are more deterministic, higher values more creative. Defaults to 0.7.")
101
92
  .optional(),
102
- required_capabilities: z
103
- .array(z.string())
104
- .describe("Required model capabilities (e.g., ['tool_calling', 'vision', 'json_mode'])")
93
+ system_prompt: z
94
+ .string()
95
+ .max(4000)
96
+ .describe("System message to set model behavior. Example: 'You are a helpful coding assistant.'")
105
97
  .optional(),
106
- limit: z
107
- .number()
108
- .min(1)
109
- .max(20)
110
- .default(5)
111
- .describe("Number of recommendations to return (1-20)"),
112
98
  });
113
99
  /**
114
- * Test Model Tool Schema
115
- * Run live API tests against models via OpenRouter
100
+ * Output Schemas for Tool Results
101
+ * Define expected return structures for better LLM understanding
116
102
  */
117
- export const testModelSchema = z.object({
118
- model_ids: z
119
- .array(z.string())
120
- .min(1)
121
- .max(5)
122
- .describe("Array of 1-5 model IDs to test with real API calls"),
123
- test_type: z
124
- .enum(["quick", "code", "reasoning", "instruction", "tool_calling"])
125
- .default("quick")
126
- .describe("Type of test to run: 'quick' (math), 'code' (generation), 'reasoning' (logic), 'instruction' (following), 'tool_calling' (function calls)"),
103
+ export const findModelsOutputSchema = z.object({
104
+ results: z.array(z.object({
105
+ id: z.string(),
106
+ name: z.string(),
107
+ description: z.string().nullable(),
108
+ score: z.number(),
109
+ provider: z.string(),
110
+ context_window: z.number().nullable(),
111
+ pricing: z.object({
112
+ input: z.number().nullable(),
113
+ output: z.number().nullable(),
114
+ }),
115
+ capabilities: z.object({
116
+ vision: z.boolean().nullable(),
117
+ audio: z.boolean().nullable(),
118
+ tool_calling: z.boolean().nullable(),
119
+ json_mode: z.boolean().nullable(),
120
+ video: z.boolean().nullable(),
121
+ }),
122
+ matched_features: z.array(z.string()).optional(),
123
+ hugging_face_id: z.string().nullable().optional(),
124
+ release_date: z.string().nullable().optional(),
125
+ })),
126
+ total: z.number().optional(),
127
+ });
128
+ export const getModelOutputSchema = z.object({
129
+ id: z.string(),
130
+ name: z.string(),
131
+ provider: z.string(),
132
+ description: z.string().nullable(),
133
+ family: z.string().nullable(),
134
+ version: z.string().nullable(),
135
+ release_date: z.string().nullable(),
136
+ limits: z.object({
137
+ context_window: z.number(),
138
+ max_output_tokens: z.number().nullable(),
139
+ }),
140
+ pricing: z.object({
141
+ input: z.number().nullable(),
142
+ output: z.number().nullable(),
143
+ }),
144
+ extended_pricing: z
145
+ .object({
146
+ image: z.number().nullable(),
147
+ audio: z.number().nullable(),
148
+ web_search: z.number().nullable(),
149
+ cache_read: z.number().nullable(),
150
+ cache_write: z.number().nullable(),
151
+ discount: z.number().nullable(),
152
+ internal_reasoning: z.number().nullable(),
153
+ })
154
+ .nullable(),
155
+ capabilities: z.object({
156
+ vision: z.boolean(),
157
+ audio: z.boolean(),
158
+ tool_calling: z.boolean(),
159
+ json_mode: z.boolean(),
160
+ video: z.boolean(),
161
+ function_calling: z.boolean(),
162
+ custom: z.array(z.string()),
163
+ }),
164
+ supported_parameters: z.array(z.string()),
165
+ is_moderated: z.boolean(),
166
+ input_modalities: z.array(z.string()),
167
+ output_modalities: z.array(z.string()),
168
+ architecture: z.object({
169
+ tokenizer: z.string().nullable(),
170
+ instruct_type: z.string().nullable(),
171
+ }),
172
+ per_request_limits: z
173
+ .object({
174
+ prompt_tokens: z.number().nullable(),
175
+ completion_tokens: z.number().nullable(),
176
+ })
177
+ .nullable(),
178
+ });
179
+ export const testModelOutputSchema = z.object({
180
+ test_type: z.string(),
181
+ prompt: z.string(),
182
+ results: z.array(z.object({
183
+ model_id: z.string(),
184
+ model_name: z.string(),
185
+ latency_ms: z.number(),
186
+ output: z.string().nullable(),
187
+ tokens_used: z
188
+ .object({
189
+ prompt_tokens: z.number(),
190
+ completion_tokens: z.number(),
191
+ total_tokens: z.number(),
192
+ })
193
+ .nullable(),
194
+ cost_estimate: z.object({
195
+ input_cost: z.number().nullable(),
196
+ output_cost: z.number().nullable(),
197
+ total_cost: z.number().nullable(),
198
+ }),
199
+ tool_calls_detected: z.boolean().optional(),
200
+ tool_calls: z
201
+ .array(z.object({
202
+ name: z.string(),
203
+ arguments: z.record(z.string(), z.unknown()),
204
+ }))
205
+ .optional(),
206
+ error: z.string().nullable(),
207
+ })),
127
208
  });
@@ -0,0 +1,3 @@
1
+ import type { FindModelsInput } from "../schemas.js";
2
+ export declare function findModelsTool(input: FindModelsInput): Promise<import("../index.js").FindModelsResponse>;
3
+ //# sourceMappingURL=find_models.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"find_models.d.ts","sourceRoot":"","sources":["../../src/tools/find_models.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,eAAe,CAAC;AAErD,wBAAsB,cAAc,CAAC,KAAK,EAAE,eAAe,qDAE1D"}
@@ -0,0 +1,4 @@
1
+ import { findModels } from "../client.js";
2
+ export async function findModelsTool(input) {
3
+ return findModels(input);
4
+ }
@@ -1 +1 @@
1
- {"version":3,"file":"test_model.d.ts","sourceRoot":"","sources":["../../src/tools/test_model.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AAEpD,wBAAsB,aAAa,CAAC,KAAK,EAAE,cAAc,oDAExD"}
1
+ {"version":3,"file":"test_model.d.ts","sourceRoot":"","sources":["../../src/tools/test_model.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AAEpD,wBAAsB,aAAa,CAAC,KAAK,EAAE,cAAc,oDAUxD"}
@@ -1,5 +1,5 @@
1
1
  import { testModel } from "../client.js";
2
2
  import { OPEN_ROUTER_API_KEY } from "../config.js";
3
3
  export async function testModelTool(input) {
4
- return testModel(input.model_ids, input.test_type, OPEN_ROUTER_API_KEY);
4
+ return testModel(input.model_ids, input.test_type, OPEN_ROUTER_API_KEY, input.prompt, input.max_tokens, input.temperature, input.system_prompt);
5
5
  }
@@ -1,7 +1,7 @@
1
1
  /**
2
2
  * API Types - Request and response types for HTTP API endpoints
3
3
  */
4
- import type { ListModelsFilters, ModelPricing, ModelCapabilities, ModelArchitecture, ExtendedPricing, ModelLimits, PerRequestLimits } from "./models.js";
4
+ import type { ListModelsFilters, ModelPricing, ModelCapabilities, ModelArchitecture, ExtendedPricing, PerRequestLimits } from "./models.js";
5
5
  export interface ListModelsQueryParams extends ListModelsFilters {
6
6
  owner?: string;
7
7
  }
@@ -19,17 +19,12 @@ export interface ListModelsResponse {
19
19
  architecture: Pick<ModelArchitecture, "tokenizer">;
20
20
  }>;
21
21
  }
22
- export interface DeploymentPricing {
23
- input: number | null;
24
- output: number | null;
25
- }
26
- export interface Deployment {
27
- platform: string;
28
- model_id: string;
29
- is_available: boolean;
30
- pricing: ModelPricing;
31
- }
32
- export interface GetModelCapabilities extends Omit<ModelCapabilities, "audio"> {
22
+ export interface GetModelCapabilities {
23
+ vision: boolean;
24
+ audio: boolean;
25
+ tool_calling: boolean;
26
+ json_mode: boolean;
27
+ video: boolean;
33
28
  function_calling: boolean;
34
29
  custom: string[];
35
30
  }
@@ -54,7 +49,6 @@ export interface GetModelResponse {
54
49
  output_modalities: string[];
55
50
  architecture: ModelArchitecture;
56
51
  per_request_limits: PerRequestLimits | null;
57
- deployments: Deployment[];
58
52
  }
59
53
  export interface SearchModelsRequest {
60
54
  query: string;
@@ -63,7 +57,10 @@ export interface SearchModelsRequest {
63
57
  }
64
58
  export interface SearchModelCapabilities {
65
59
  vision: boolean | null;
60
+ audio: boolean | null;
66
61
  tool_calling: boolean | null;
62
+ json_mode: boolean | null;
63
+ video: boolean | null;
67
64
  }
68
65
  export interface SearchModelsResponse {
69
66
  results: Array<{
@@ -77,57 +74,40 @@ export interface SearchModelsResponse {
77
74
  capabilities: SearchModelCapabilities;
78
75
  }>;
79
76
  }
80
- export interface CompareModelsRequest {
81
- model_ids: string[];
82
- }
83
- export interface CompareModelCapabilities {
84
- vision: boolean | null;
85
- tool_calling: boolean | null;
86
- custom: string[];
87
- }
88
- export interface CompareModelsResponse {
89
- models: Array<{
90
- id: string;
91
- name: string;
92
- provider: string;
93
- limits: ModelLimits;
94
- pricing: ModelPricing;
95
- capabilities: CompareModelCapabilities;
96
- deployments: Deployment[];
97
- }>;
98
- not_found?: string[];
99
- suggestions?: Record<string, Array<{
100
- id: string;
101
- name: string;
102
- similarity: number;
103
- }>>;
104
- }
105
- export interface RecommendModelRequest {
106
- use_case: string;
107
- max_price_per_m?: number;
77
+ export interface FindModelsRequest {
78
+ query?: string;
79
+ provider?: string;
108
80
  min_context?: number;
109
- required_capabilities?: string[];
81
+ max_context?: number;
82
+ max_price_per_m?: number;
83
+ capabilities?: string[];
84
+ sort_by?: "relevance" | "price_asc" | "price_desc" | "date_desc" | "context_desc";
110
85
  limit?: number;
86
+ offset?: number;
111
87
  }
112
- export interface RecommendModelResponse {
113
- use_case: string;
114
- recommendations: Array<{
88
+ export interface FindModelsResponse {
89
+ results: Array<{
115
90
  id: string;
116
91
  name: string;
92
+ description: string | null;
117
93
  score: number;
94
+ provider: string;
118
95
  context_window: number | null;
119
96
  pricing: ModelPricing;
120
- confidence?: "high" | "medium" | "low";
97
+ capabilities: SearchModelCapabilities;
121
98
  matched_features?: string[];
122
- pricing_available: boolean;
99
+ hugging_face_id?: string | null;
123
100
  release_date: string | null;
124
101
  }>;
125
- suggestions?: string[];
126
- warning?: string;
102
+ total?: number;
127
103
  }
128
104
  export interface TestModelRequest {
129
105
  model_ids: string[];
130
106
  test_type?: "quick" | "code" | "reasoning" | "instruction" | "tool_calling";
107
+ custom_prompt?: string;
108
+ max_tokens?: number;
109
+ temperature?: number;
110
+ system_prompt?: string;
131
111
  }
132
112
  export interface TokensUsed {
133
113
  prompt_tokens: number;
@@ -147,6 +127,10 @@ export interface TestModelResult {
147
127
  tokens_used: TokensUsed | null;
148
128
  cost_estimate: CostEstimate;
149
129
  tool_calls_detected?: boolean;
130
+ tool_calls?: Array<{
131
+ name: string;
132
+ arguments: Record<string, unknown>;
133
+ }>;
150
134
  error: string | null;
151
135
  }
152
136
  export interface TestModelResponse {
@@ -1 +1 @@
1
- {"version":3,"file":"api.d.ts","sourceRoot":"","sources":["../../src/types/api.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"api.d.ts","sourceRoot":"","sources":["../../src/types/api.ts"],"names":[],"mappings":"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"}
@@ -1,7 +1,6 @@
1
1
  /**
2
- * Model Types - Normalized model interface for real-time provider federation
2
+ * Model Types - Normalized model interface for OpenRouter models
3
3
  */
4
- import type { Deployment } from "./api";
5
4
  export interface ModelPricing {
6
5
  input: number | null;
7
6
  output: number | null;
@@ -23,10 +22,7 @@ export interface ExtendedPricing {
23
22
  cache_read: number | null;
24
23
  cache_write: number | null;
25
24
  discount: number | null;
26
- }
27
- export interface ModelLimits {
28
- context_window: number | null;
29
- max_output_tokens: number | null;
25
+ internal_reasoning: number | null;
30
26
  }
31
27
  export interface PerRequestLimits {
32
28
  prompt_tokens: number | null;
@@ -49,7 +45,7 @@ export interface NormalizedModel {
49
45
  extended_pricing: ExtendedPricing | null;
50
46
  is_moderated: boolean;
51
47
  per_request_limits: PerRequestLimits | null;
52
- deployments: Deployment[];
48
+ hugging_face_id: string | null;
53
49
  }
54
50
  export interface ProviderAdapter {
55
51
  id: string;
@@ -1 +1 @@
1
- {"version":3,"file":"models.d.ts","sourceRoot":"","sources":["../../src/types/models.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,OAAO,CAAC;AAExC,MAAM,WAAW,YAAY;IAC3B,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IACrB,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;CACvB;AAED,MAAM,WAAW,iBAAiB;IAChC,MAAM,EAAE,OAAO,CAAC;IAChB,KAAK,EAAE,OAAO,CAAC;IACf,YAAY,EAAE,OAAO,CAAC;IACtB,SAAS,EAAE,OAAO,CAAC;CACpB;AAED,MAAM,WAAW,iBAAiB;IAChC,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,aAAa,EAAE,MAAM,GAAG,IAAI,CAAC;CAC9B;AAED,MAAM,WAAW,eAAe;IAC9B,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IACrB,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IACrB,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;CACzB;AAED,MAAM,WAAW,WAAW;IAC1B,cAAc,EAAE,MAAM,GAAG,IAAI,CAAC;IAC9B,iBAAiB,EAAE,MAAM,GAAG,IAAI,CAAC;CAClC;AAED,MAAM,WAAW,gBAAgB;IAC/B,aAAa,EAAE,MAAM,GAAG,IAAI,CAAC;IAC7B,iBAAiB,EAAE,MAAM,GAAG,IAAI,CAAC;CAClC;AAED,MAAM,WAAW,eAAe;IAC9B,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,MAAM,CAAC;IACjB,cAAc,EAAE,MAAM,GAAG,IAAI,CAAC;IAC9B,iBAAiB,EAAE,MAAM,GAAG,IAAI,CAAC;IACjC,OAAO,EAAE,YAAY,CAAC;IACtB,YAAY,EAAE,iBAAiB,CAAC;IAChC,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B,YAAY,EAAE,MAAM,GAAG,IAAI,CAAC;IAC5B,gBAAgB,EAAE,MAAM,EAAE,CAAC;IAC3B,iBAAiB,EAAE,MAAM,EAAE,CAAC;IAC5B,oBAAoB,EAAE,MAAM,EAAE,CAAC;IAC/B,YAAY,EAAE,iBAAiB,CAAC;IAChC,gBAAgB,EAAE,eAAe,GAAG,IAAI,CAAC;IACzC,YAAY,EAAE,OAAO,CAAC;IACtB,kBAAkB,EAAE,gBAAgB,GAAG,IAAI,CAAC;IAC5C,WAAW,EAAE,UAAU,EAAE,CAAC;CAC3B;AAED,MAAM,WAAW,eAAe;IAC9B,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,IAAI,OAAO,CAAC,eAAe,EAAE,CAAC,CAAC;CAC3C;AAED,MAAM,WAAW,iBAAiB;IAChC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,EAAE,MAAM,GAAG,QAAQ,GAAG,OAAO,GAAG,OAAO,GAAG,OAAO,CAAC;IAC3D,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,qBAAqB,CAAC,EAAE,OAAO,CAAC;IAChC,kBAAkB,CAAC,EAAE,OAAO,CAAC;IAC7B,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,eAAe,CAAC,EAAE,MAAM,GAAG,OAAO,GAAG,YAAY,CAAC;IAClD,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB"}
1
+ {"version":3,"file":"models.d.ts","sourceRoot":"","sources":["../../src/types/models.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,MAAM,WAAW,YAAY;IAC3B,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IACrB,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;CACvB;AAED,MAAM,WAAW,iBAAiB;IAChC,MAAM,EAAE,OAAO,CAAC;IAChB,KAAK,EAAE,OAAO,CAAC;IACf,YAAY,EAAE,OAAO,CAAC;IACtB,SAAS,EAAE,OAAO,CAAC;CACpB;AAED,MAAM,WAAW,iBAAiB;IAChC,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,aAAa,EAAE,MAAM,GAAG,IAAI,CAAC;CAC9B;AAED,MAAM,WAAW,eAAe;IAC9B,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IACrB,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IACrB,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,kBAAkB,EAAE,MAAM,GAAG,IAAI,CAAC;CACnC;AAED,MAAM,WAAW,gBAAgB;IAC/B,aAAa,EAAE,MAAM,GAAG,IAAI,CAAC;IAC7B,iBAAiB,EAAE,MAAM,GAAG,IAAI,CAAC;CAClC;AAED,MAAM,WAAW,eAAe;IAC9B,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,MAAM,CAAC;IACjB,cAAc,EAAE,MAAM,GAAG,IAAI,CAAC;IAC9B,iBAAiB,EAAE,MAAM,GAAG,IAAI,CAAC;IACjC,OAAO,EAAE,YAAY,CAAC;IACtB,YAAY,EAAE,iBAAiB,CAAC;IAChC,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B,YAAY,EAAE,MAAM,GAAG,IAAI,CAAC;IAC5B,gBAAgB,EAAE,MAAM,EAAE,CAAC;IAC3B,iBAAiB,EAAE,MAAM,EAAE,CAAC;IAC5B,oBAAoB,EAAE,MAAM,EAAE,CAAC;IAC/B,YAAY,EAAE,iBAAiB,CAAC;IAChC,gBAAgB,EAAE,eAAe,GAAG,IAAI,CAAC;IACzC,YAAY,EAAE,OAAO,CAAC;IACtB,kBAAkB,EAAE,gBAAgB,GAAG,IAAI,CAAC;IAC5C,eAAe,EAAE,MAAM,GAAG,IAAI,CAAC;CAChC;AAED,MAAM,WAAW,eAAe;IAC9B,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,IAAI,OAAO,CAAC,eAAe,EAAE,CAAC,CAAC;CAC3C;AAED,MAAM,WAAW,iBAAiB;IAChC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,EAAE,MAAM,GAAG,QAAQ,GAAG,OAAO,GAAG,OAAO,GAAG,OAAO,CAAC;IAC3D,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,qBAAqB,CAAC,EAAE,OAAO,CAAC;IAChC,kBAAkB,CAAC,EAAE,OAAO,CAAC;IAC7B,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,eAAe,CAAC,EAAE,MAAM,GAAG,OAAO,GAAG,YAAY,CAAC;IAClD,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB"}
@@ -1,4 +1,4 @@
1
1
  /**
2
- * Model Types - Normalized model interface for real-time provider federation
2
+ * Model Types - Normalized model interface for OpenRouter models
3
3
  */
4
4
  export {};
@@ -1,6 +1,6 @@
1
1
  /**
2
2
  * Check if a tool request should be rate limited
3
- * @param toolName - The tool name (e.g., "list_models", "search_models")
3
+ * @param toolName - The tool name (e.g., "find_models", "get_model", "test_model")
4
4
  * @returns true if allowed, false if rate limited
5
5
  */
6
6
  export declare function checkRateLimit(toolName: string): boolean;
@@ -2,7 +2,7 @@ import { RATE_LIMIT_WINDOW_MS, RATE_LIMIT_MAX_REQUESTS } from "../config.js";
2
2
  const requestCounts = new Map();
3
3
  /**
4
4
  * Check if a tool request should be rate limited
5
- * @param toolName - The tool name (e.g., "list_models", "search_models")
5
+ * @param toolName - The tool name (e.g., "find_models", "get_model", "test_model")
6
6
  * @returns true if allowed, false if rate limited
7
7
  */
8
8
  export function checkRateLimit(toolName) {
package/package.json CHANGED
@@ -1,8 +1,8 @@
1
1
  {
2
2
  "name": "@index9/mcp",
3
3
  "mcpName": "io.github.index9-org/mcp",
4
- "version": "1.0.18",
5
- "description": "Real-time model intelligence for your AI assistant.",
4
+ "version": "1.0.20",
5
+ "description": "Live Model Registry and performance testing for your AI assistant. Sourced from OpenRouter.",
6
6
  "keywords": [
7
7
  "mcp",
8
8
  "model-context-protocol",
@@ -43,7 +43,7 @@
43
43
  "zod": "^4.1.13"
44
44
  },
45
45
  "devDependencies": {
46
- "@types/node": "^24.10.2",
46
+ "@types/node": "^25.0.1",
47
47
  "pino-pretty": "^13.1.3",
48
48
  "tsx": "^4.21.0",
49
49
  "typescript": "^5.9.3"
@@ -1,3 +0,0 @@
1
- import type { CompareModelsInput } from "../schemas.js";
2
- export declare function compareModelsTool(input: CompareModelsInput): Promise<import("../index.js").CompareModelsResponse>;
3
- //# sourceMappingURL=compare_models.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"compare_models.d.ts","sourceRoot":"","sources":["../../src/tools/compare_models.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,eAAe,CAAC;AAExD,wBAAsB,iBAAiB,CAAC,KAAK,EAAE,kBAAkB,wDAEhE"}
@@ -1,4 +0,0 @@
1
- import { compareModels } from "../client.js";
2
- export async function compareModelsTool(input) {
3
- return compareModels(input.model_ids);
4
- }
@@ -1,9 +0,0 @@
1
- export declare function getCapabilitiesTool(): Promise<{
2
- features: string[];
3
- limits: {
4
- window_ms: number;
5
- max_requests: number;
6
- };
7
- data_freshness: string;
8
- }>;
9
- //# sourceMappingURL=get_capabilities.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"get_capabilities.d.ts","sourceRoot":"","sources":["../../src/tools/get_capabilities.ts"],"names":[],"mappings":"AAEA,wBAAsB,mBAAmB;;;;;;;GAiBxC"}
@@ -1,19 +0,0 @@
1
- import { RATE_LIMIT_WINDOW_MS, RATE_LIMIT_MAX_REQUESTS } from "../config.js";
2
- export async function getCapabilitiesTool() {
3
- return {
4
- features: [
5
- "list_models",
6
- "search_models",
7
- "get_model",
8
- "compare_models",
9
- "recommend_model",
10
- "test_model",
11
- "get_capabilities",
12
- ],
13
- limits: {
14
- window_ms: RATE_LIMIT_WINDOW_MS,
15
- max_requests: RATE_LIMIT_MAX_REQUESTS,
16
- },
17
- data_freshness: new Date().toISOString(),
18
- };
19
- }
@@ -1,23 +0,0 @@
1
- import type { ListModelsInput } from "../schemas.js";
2
- export declare function listModelsTool(input: ListModelsInput): Promise<{
3
- models: {
4
- id: string;
5
- name: string;
6
- provider: string;
7
- context_window: number | null;
8
- max_output_tokens: number | null;
9
- input_modalities: string[];
10
- pricing: {
11
- input: number | null;
12
- output: number | null;
13
- };
14
- capabilities: {
15
- vision: boolean;
16
- audio: boolean;
17
- tool_calling: boolean;
18
- json_mode: boolean;
19
- };
20
- architecture: Pick<import("../index.js").ModelArchitecture, "tokenizer">;
21
- }[];
22
- }>;
23
- //# sourceMappingURL=list_models.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"list_models.d.ts","sourceRoot":"","sources":["../../src/tools/list_models.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,eAAe,CAAC;AAErD,wBAAsB,cAAc,CAAC,KAAK,EAAE,eAAe;;;;;;;;;;;;;;;;;;;;GAuB1D"}