mcp-use 0.1.7 → 0.1.9
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/README.md +196 -0
- package/dist/examples/ai_sdk_example.d.ts +23 -0
- package/dist/examples/ai_sdk_example.d.ts.map +1 -0
- package/dist/examples/ai_sdk_example.js +213 -0
- package/dist/examples/stream_example.d.ts +12 -0
- package/dist/examples/stream_example.d.ts.map +1 -0
- package/dist/examples/stream_example.js +198 -0
- package/dist/examples/structured_output.d.ts +9 -0
- package/dist/examples/structured_output.d.ts.map +1 -0
- package/dist/examples/structured_output.js +95 -0
- package/dist/index.d.ts +2 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +2 -0
- package/dist/src/agents/mcp_agent.d.ts +24 -4
- package/dist/src/agents/mcp_agent.d.ts.map +1 -1
- package/dist/src/agents/mcp_agent.js +355 -50
- package/dist/src/agents/utils/ai_sdk.d.ts +22 -0
- package/dist/src/agents/utils/ai_sdk.d.ts.map +1 -0
- package/dist/src/agents/utils/ai_sdk.js +62 -0
- package/dist/src/agents/utils/index.d.ts +2 -0
- package/dist/src/agents/utils/index.d.ts.map +1 -0
- package/dist/src/agents/utils/index.js +1 -0
- package/dist/tests/ai_sdk_compatibility.test.d.ts +13 -0
- package/dist/tests/ai_sdk_compatibility.test.d.ts.map +1 -0
- package/dist/tests/ai_sdk_compatibility.test.js +214 -0
- package/dist/tests/stream_events.test.d.ts +2 -0
- package/dist/tests/stream_events.test.d.ts.map +1 -0
- package/dist/tests/stream_events.test.js +306 -0
- package/dist/tests/stream_events_simple.test.d.ts +7 -0
- package/dist/tests/stream_events_simple.test.d.ts.map +1 -0
- package/dist/tests/stream_events_simple.test.js +179 -0
- package/dist/vitest.config.d.ts +3 -0
- package/dist/vitest.config.d.ts.map +1 -0
- package/dist/vitest.config.js +21 -0
- package/package.json +16 -5
@@ -0,0 +1,95 @@
|
|
1
|
+
/**
|
2
|
+
* Structured Output Example - City Research with Playwright
|
3
|
+
*
|
4
|
+
* This example demonstrates intelligent structured output by researching Padova, Italy.
|
5
|
+
* The agent becomes schema-aware and will intelligently retry to gather missing
|
6
|
+
* information until all required fields can be populated.
|
7
|
+
*/
|
8
|
+
import { ChatOpenAI } from '@langchain/openai';
|
9
|
+
import { config } from 'dotenv';
|
10
|
+
import { z } from 'zod';
|
11
|
+
import { MCPAgent, MCPClient } from '../index.js';
|
12
|
+
// Load environment variables from .env file
|
13
|
+
config();
|
14
|
+
// Define the structured output schema using Zod
|
15
|
+
const CityInfoSchema = z.object({
|
16
|
+
name: z.string().describe('Official name of the city'),
|
17
|
+
country: z.string().describe('Country where the city is located'),
|
18
|
+
region: z.string().describe('Region or state within the country'),
|
19
|
+
population: z.number().describe('Current population count'),
|
20
|
+
area_km2: z.number().describe('Area in square kilometers'),
|
21
|
+
foundation_date: z.string().describe('When the city was founded (approximate year or period)'),
|
22
|
+
mayor: z.string().describe('Current mayor or city leader'),
|
23
|
+
famous_landmarks: z.array(z.string()).describe('List of famous landmarks, monuments, or attractions'),
|
24
|
+
universities: z.array(z.string()).describe('List of major universities or educational institutions'),
|
25
|
+
economy_sectors: z.array(z.string()).describe('Main economic sectors or industries'),
|
26
|
+
sister_cities: z.array(z.string()).describe('Twin cities or sister cities partnerships'),
|
27
|
+
historical_significance: z.string().describe('Brief description of historical importance'),
|
28
|
+
climate_type: z.string().nullable().describe('Type of climate (e.g., Mediterranean, Continental)'),
|
29
|
+
elevation_meters: z.number().nullable().describe('Elevation above sea level in meters'),
|
30
|
+
});
|
31
|
+
async function main() {
|
32
|
+
const mcpConfig = {
|
33
|
+
mcpServers: {
|
34
|
+
playwright: {
|
35
|
+
command: 'npx',
|
36
|
+
args: ['@playwright/mcp@latest'],
|
37
|
+
env: {
|
38
|
+
DISPLAY: ':1',
|
39
|
+
},
|
40
|
+
},
|
41
|
+
},
|
42
|
+
};
|
43
|
+
const client = new MCPClient(mcpConfig);
|
44
|
+
const llm = new ChatOpenAI({ model: 'gpt-4o' });
|
45
|
+
const agent = new MCPAgent({ llm, client, maxSteps: 50, memoryEnabled: true });
|
46
|
+
try {
|
47
|
+
// Use structured output with intelligent retry
|
48
|
+
// The agent will:
|
49
|
+
// 1. Know exactly what information it needs to collect
|
50
|
+
// 2. Attempt structured output at finish points
|
51
|
+
// 3. Continue execution if required information is missing
|
52
|
+
// 4. Only finish when all required fields can be populated
|
53
|
+
const result = await agent.run(`
|
54
|
+
Research comprehensive information about the city of Padova (also known as Padua) in Italy.
|
55
|
+
|
56
|
+
Visit multiple reliable sources like Wikipedia, official city websites, tourism sites,
|
57
|
+
and university websites to gather detailed information including demographics, history,
|
58
|
+
governance, education, economy, landmarks, and international relationships.
|
59
|
+
`, 50, // maxSteps
|
60
|
+
true, // manageConnector
|
61
|
+
[], // externalHistory
|
62
|
+
CityInfoSchema);
|
63
|
+
// Now you have strongly-typed, validated data!
|
64
|
+
console.log(`Name: ${result.name}`);
|
65
|
+
console.log(`Country: ${result.country}`);
|
66
|
+
console.log(`Region: ${result.region}`);
|
67
|
+
console.log(`Population: ${result.population.toLocaleString()}`);
|
68
|
+
console.log(`Area: ${result.area_km2} km²`);
|
69
|
+
console.log(`Foundation: ${result.foundation_date}`);
|
70
|
+
console.log(`Mayor: ${result.mayor}`);
|
71
|
+
console.log(`Universities: ${result.universities.join(', ')}`);
|
72
|
+
console.log(`Economy: ${result.economy_sectors.join(', ')}`);
|
73
|
+
console.log(`Landmarks: ${result.famous_landmarks.join(', ')}`);
|
74
|
+
console.log(`Sister Cities: ${result.sister_cities.length > 0 ? result.sister_cities.join(', ') : 'None'}`);
|
75
|
+
console.log(`Historical Significance: ${result.historical_significance}`);
|
76
|
+
if (result.climate_type) {
|
77
|
+
console.log(`Climate: ${result.climate_type}`);
|
78
|
+
}
|
79
|
+
if (result.elevation_meters !== null) {
|
80
|
+
console.log(`Elevation: ${result.elevation_meters} meters`);
|
81
|
+
}
|
82
|
+
}
|
83
|
+
catch (error) {
|
84
|
+
console.error('Error:', error);
|
85
|
+
}
|
86
|
+
finally {
|
87
|
+
await agent.close();
|
88
|
+
}
|
89
|
+
}
|
90
|
+
// Handle unhandled promise rejections
|
91
|
+
process.on('unhandledRejection', (reason, promise) => {
|
92
|
+
console.error('Unhandled Rejection at:', promise, 'reason:', reason);
|
93
|
+
process.exit(1);
|
94
|
+
});
|
95
|
+
main().catch(console.error);
|
package/dist/index.d.ts
CHANGED
@@ -8,8 +8,10 @@ import { WebSocketConnector } from './src/connectors/websocket.js';
|
|
8
8
|
import { Logger, logger } from './src/logging.js';
|
9
9
|
import { MCPSession } from './src/session.js';
|
10
10
|
export { BaseAdapter, LangChainAdapter } from './src/adapters/index.js';
|
11
|
+
export * from './src/agents/utils/index.js';
|
11
12
|
export { ServerManager } from './src/managers/server_manager.js';
|
12
13
|
export * from './src/managers/tools/index.js';
|
13
14
|
export { setTelemetrySource, Telemetry } from './src/telemetry/index.js';
|
15
|
+
export type { StreamEvent } from '@langchain/core/tracers/log_stream';
|
14
16
|
export { BaseConnector, HttpConnector, loadConfigFile, Logger, logger, MCPAgent, MCPClient, MCPSession, StdioConnector, WebSocketConnector };
|
15
17
|
//# sourceMappingURL=index.d.ts.map
|
package/dist/index.d.ts.map
CHANGED
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,2BAA2B,CAAA;AACpD,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAA;AAC3C,OAAO,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAA;AAChD,OAAO,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAA;AACxD,OAAO,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAA;AACxD,OAAO,EAAE,cAAc,EAAE,MAAM,2BAA2B,CAAA;AAC1D,OAAO,EAAE,kBAAkB,EAAE,MAAM,+BAA+B,CAAA;AAElE,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAA;AACjD,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAA;AAE7C,OAAO,EAAE,WAAW,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAA;
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,2BAA2B,CAAA;AACpD,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAA;AAC3C,OAAO,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAA;AAChD,OAAO,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAA;AACxD,OAAO,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAA;AACxD,OAAO,EAAE,cAAc,EAAE,MAAM,2BAA2B,CAAA;AAC1D,OAAO,EAAE,kBAAkB,EAAE,MAAM,+BAA+B,CAAA;AAElE,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAA;AACjD,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAA;AAE7C,OAAO,EAAE,WAAW,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAA;AAEvE,cAAc,6BAA6B,CAAA;AAC3C,OAAO,EAAE,aAAa,EAAE,MAAM,kCAAkC,CAAA;AAEhE,cAAc,+BAA+B,CAAA;AAG7C,OAAO,EAAE,kBAAkB,EAAE,SAAS,EAAE,MAAM,0BAA0B,CAAA;AAGxE,YAAY,EAAE,WAAW,EAAE,MAAM,oCAAoC,CAAA;AAErE,OAAO,EAAE,aAAa,EAAE,aAAa,EAAE,cAAc,EAAE,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,SAAS,EAAE,UAAU,EAAE,cAAc,EAAE,kBAAkB,EAAE,CAAA"}
|
package/dist/index.js
CHANGED
@@ -8,6 +8,8 @@ import { WebSocketConnector } from './src/connectors/websocket.js';
|
|
8
8
|
import { Logger, logger } from './src/logging.js';
|
9
9
|
import { MCPSession } from './src/session.js';
|
10
10
|
export { BaseAdapter, LangChainAdapter } from './src/adapters/index.js';
|
11
|
+
// Export AI SDK utilities
|
12
|
+
export * from './src/agents/utils/index.js';
|
11
13
|
export { ServerManager } from './src/managers/server_manager.js';
|
12
14
|
export * from './src/managers/tools/index.js';
|
13
15
|
// Export telemetry utilities
|
@@ -1,7 +1,9 @@
|
|
1
1
|
import type { BaseLanguageModelInterface } from '@langchain/core/language_models/base';
|
2
2
|
import type { BaseMessage } from '@langchain/core/messages';
|
3
3
|
import type { StructuredToolInterface } from '@langchain/core/tools';
|
4
|
+
import type { StreamEvent } from '@langchain/core/tracers/log_stream';
|
4
5
|
import type { AgentStep } from 'langchain/agents';
|
6
|
+
import type { z } from 'zod';
|
5
7
|
import type { MCPClient } from '../client.js';
|
6
8
|
import type { BaseConnector } from '../connectors/base.js';
|
7
9
|
import { SystemMessage } from '@langchain/core/messages';
|
@@ -21,12 +23,12 @@ export declare class MCPAgent {
|
|
21
23
|
private systemPrompt?;
|
22
24
|
private systemPromptTemplateOverride?;
|
23
25
|
private additionalInstructions?;
|
24
|
-
private
|
26
|
+
private _initialized;
|
25
27
|
private conversationHistory;
|
26
|
-
private
|
28
|
+
private _agentExecutor;
|
27
29
|
private sessions;
|
28
30
|
private systemMessage;
|
29
|
-
private
|
31
|
+
private _tools;
|
30
32
|
private adapter;
|
31
33
|
private serverManager;
|
32
34
|
private telemetry;
|
@@ -64,10 +66,28 @@ export declare class MCPAgent {
|
|
64
66
|
* Runs the agent and returns a promise for the final result.
|
65
67
|
*/
|
66
68
|
run(query: string, maxSteps?: number, manageConnector?: boolean, externalHistory?: BaseMessage[]): Promise<string>;
|
69
|
+
/**
|
70
|
+
* Runs the agent with structured output and returns a promise for the typed result.
|
71
|
+
*/
|
72
|
+
run<T>(query: string, maxSteps?: number, manageConnector?: boolean, externalHistory?: BaseMessage[], outputSchema?: z.ZodSchema<T>): Promise<T>;
|
67
73
|
/**
|
68
74
|
* Runs the agent and yields intermediate steps as an async generator.
|
75
|
+
* If outputSchema is provided, returns structured output of type T.
|
69
76
|
*/
|
70
|
-
stream(query: string, maxSteps?: number, manageConnector?: boolean, externalHistory?: BaseMessage[]): AsyncGenerator<AgentStep, string, void>;
|
77
|
+
stream<T = string>(query: string, maxSteps?: number, manageConnector?: boolean, externalHistory?: BaseMessage[], outputSchema?: z.ZodSchema<T>): AsyncGenerator<AgentStep, string | T, void>;
|
71
78
|
close(): Promise<void>;
|
79
|
+
/**
|
80
|
+
* Yields LangChain StreamEvent objects from the underlying streamEvents() method.
|
81
|
+
* This provides token-level streaming and fine-grained event updates.
|
82
|
+
*/
|
83
|
+
streamEvents(query: string, maxSteps?: number, manageConnector?: boolean, externalHistory?: BaseMessage[]): AsyncGenerator<StreamEvent, void, void>;
|
84
|
+
/**
|
85
|
+
* Attempt to create structured output from raw result with validation.
|
86
|
+
*/
|
87
|
+
private _attemptStructuredOutput;
|
88
|
+
/**
|
89
|
+
* Enhance the query with schema information to make the agent aware of required fields.
|
90
|
+
*/
|
91
|
+
private _enhanceQueryWithSchema;
|
72
92
|
}
|
73
93
|
//# sourceMappingURL=mcp_agent.d.ts.map
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"mcp_agent.d.ts","sourceRoot":"","sources":["../../../src/agents/mcp_agent.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,0BAA0B,EAAqB,MAAM,sCAAsC,CAAA;AACzG,OAAO,KAAK,EACV,WAAW,EACZ,MAAM,0BAA0B,CAAA;AACjC,OAAO,KAAK,EAAE,uBAAuB,EAAiB,MAAM,uBAAuB,CAAA;AACnF,OAAO,KAAK,EAAe,SAAS,EAAE,MAAM,kBAAkB,CAAA;AAC9D,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,cAAc,CAAA;AAC7C,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAA;AAE1D,OAAO,EAGL,aAAa,EACd,MAAM,0BAA0B,CAAA;AAUjC,OAAO,EAAE,gBAAgB,EAAE,MAAM,kCAAkC,CAAA;AAEnE,OAAO,EAAE,aAAa,EAAE,MAAM,+BAA+B,CAAA;AAK7D,qBAAa,QAAQ;IACnB,OAAO,CAAC,GAAG,CAA4B;IACvC,OAAO,CAAC,MAAM,CAAC,CAAW;IAC1B,OAAO,CAAC,UAAU,CAAiB;IACnC,OAAO,CAAC,QAAQ,CAAQ;IACxB,OAAO,CAAC,cAAc,CAAS;IAC/B,OAAO,CAAC,aAAa,CAAS;IAC9B,OAAO,CAAC,eAAe,CAAU;IACjC,OAAO,CAAC,eAAe,CAA2B;IAClD,OAAO,CAAC,gBAAgB,CAAS;IACjC,OAAO,CAAC,OAAO,CAAS;IACxB,OAAO,CAAC,YAAY,CAAC,CAAe;IACpC,OAAO,CAAC,4BAA4B,CAAC,CAAe;IACpD,OAAO,CAAC,sBAAsB,CAAC,CAAe;IAE9C,OAAO,CAAC,
|
1
|
+
{"version":3,"file":"mcp_agent.d.ts","sourceRoot":"","sources":["../../../src/agents/mcp_agent.ts"],"names":[],"mappings":"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"}
|