ClaudeFlow ported, needs cleanup
This commit is contained in:
@@ -0,0 +1,209 @@
|
||||
Feature: MCP (Model Context Protocol) Integration
|
||||
As a CleverClaude user
|
||||
I want to use MCP tools and services
|
||||
So that I can extend CleverClaude capabilities with external tools
|
||||
|
||||
Background:
|
||||
Given CleverClaude is running
|
||||
And the MCP client is initialized
|
||||
|
||||
@smoke
|
||||
Scenario: Initialize MCP client
|
||||
When I initialize the MCP client
|
||||
Then the MCP client should be ready
|
||||
And available tools should be loaded
|
||||
And the client should be connected to MCP servers
|
||||
|
||||
Scenario: List available MCP tools
|
||||
When I request the list of available MCP tools
|
||||
Then I should receive a list of tools
|
||||
And the list should contain more than 80 tools
|
||||
And each tool should have proper metadata
|
||||
|
||||
Scenario Outline: Execute basic MCP tools
|
||||
When I execute the MCP tool "<tool_name>" with parameters:
|
||||
"""
|
||||
<parameters>
|
||||
"""
|
||||
Then the tool should execute successfully
|
||||
And I should receive valid results
|
||||
And the response should match the expected format
|
||||
|
||||
Examples:
|
||||
| tool_name | parameters |
|
||||
| swarm_init | {"topology": "mesh", "maxAgents": 5} |
|
||||
| agent_spawn | {"type": "researcher", "name": "test_agent"} |
|
||||
| task_orchestrate | {"task": "Simple test task"} |
|
||||
| swarm_status | {} |
|
||||
| memory_usage | {"action": "list"} |
|
||||
|
||||
Scenario: Execute swarm management via MCP
|
||||
When I execute MCP tool "swarm_init" with parameters:
|
||||
"""
|
||||
{
|
||||
"topology": "hierarchical",
|
||||
"maxAgents": 10,
|
||||
"strategy": "balanced"
|
||||
}
|
||||
"""
|
||||
Then a new swarm should be created
|
||||
And the swarm should have hierarchical topology
|
||||
When I execute MCP tool "agent_spawn" with parameters:
|
||||
"""
|
||||
{
|
||||
"type": "researcher",
|
||||
"name": "mcp_researcher",
|
||||
"capabilities": ["research", "analysis"]
|
||||
}
|
||||
"""
|
||||
Then a new agent should be spawned
|
||||
And the agent should be added to the swarm
|
||||
|
||||
Scenario: Neural network operations via MCP
|
||||
When I execute MCP tool "neural_train" with parameters:
|
||||
"""
|
||||
{
|
||||
"pattern_type": "coordination",
|
||||
"training_data": "sample training data",
|
||||
"epochs": 10
|
||||
}
|
||||
"""
|
||||
Then neural training should begin
|
||||
And training progress should be reported
|
||||
When I execute MCP tool "neural_predict" with parameters:
|
||||
"""
|
||||
{
|
||||
"modelId": "coordination_model",
|
||||
"input": "test prediction input"
|
||||
}
|
||||
"""
|
||||
Then prediction results should be returned
|
||||
|
||||
Scenario: Memory management via MCP
|
||||
When I execute MCP tool "memory_usage" with parameters:
|
||||
"""
|
||||
{
|
||||
"action": "store",
|
||||
"key": "test_key",
|
||||
"value": "test_value",
|
||||
"namespace": "test_namespace"
|
||||
}
|
||||
"""
|
||||
Then the data should be stored successfully
|
||||
When I execute MCP tool "memory_usage" with parameters:
|
||||
"""
|
||||
{
|
||||
"action": "retrieve",
|
||||
"key": "test_key",
|
||||
"namespace": "test_namespace"
|
||||
}
|
||||
"""
|
||||
Then the stored data should be retrieved
|
||||
And the retrieved value should match "test_value"
|
||||
|
||||
Scenario: Performance monitoring via MCP
|
||||
Given I have an active swarm with agents
|
||||
When I execute MCP tool "performance_report" with parameters:
|
||||
"""
|
||||
{
|
||||
"format": "detailed",
|
||||
"timeframe": "24h"
|
||||
}
|
||||
"""
|
||||
Then I should receive detailed performance metrics
|
||||
And metrics should include swarm statistics
|
||||
And metrics should include agent performance data
|
||||
|
||||
Scenario: Workflow automation via MCP
|
||||
When I execute MCP tool "workflow_create" with parameters:
|
||||
"""
|
||||
{
|
||||
"name": "test_workflow",
|
||||
"steps": [
|
||||
{"action": "create_agent", "type": "researcher"},
|
||||
{"action": "assign_task", "task_type": "analysis"},
|
||||
{"action": "collect_results"}
|
||||
]
|
||||
}
|
||||
"""
|
||||
Then a new workflow should be created
|
||||
When I execute MCP tool "workflow_execute" with parameters:
|
||||
"""
|
||||
{
|
||||
"workflowId": "test_workflow"
|
||||
}
|
||||
"""
|
||||
Then the workflow should execute successfully
|
||||
And all workflow steps should complete
|
||||
|
||||
Scenario: Error handling in MCP operations
|
||||
When I execute MCP tool "swarm_init" with invalid parameters:
|
||||
"""
|
||||
{
|
||||
"topology": "invalid_topology",
|
||||
"maxAgents": -1
|
||||
}
|
||||
"""
|
||||
Then the operation should fail gracefully
|
||||
And I should receive a meaningful error message
|
||||
And the system should remain stable
|
||||
|
||||
Scenario: MCP tool discovery and metadata
|
||||
When I request tool metadata for "agent_spawn"
|
||||
Then I should receive complete tool information
|
||||
And the metadata should include parameter schemas
|
||||
And the metadata should include usage examples
|
||||
And the metadata should specify return types
|
||||
|
||||
@wip
|
||||
Scenario: Custom MCP server integration
|
||||
Given I have a custom MCP server running
|
||||
When I register the custom server with CleverClaude
|
||||
Then the server should be added to available servers
|
||||
And custom tools should be discoverable
|
||||
And I should be able to execute custom tools
|
||||
|
||||
Scenario: Concurrent MCP operations
|
||||
When I execute multiple MCP tools simultaneously:
|
||||
| tool_name | parameters |
|
||||
| swarm_status | {} |
|
||||
| agent_metrics | {"agentId": "test_agent"} |
|
||||
| memory_usage | {"action": "list"} |
|
||||
| performance_report | {"format": "summary"} |
|
||||
Then all operations should complete successfully
|
||||
And no operation should block others
|
||||
And results should be returned in reasonable time
|
||||
|
||||
Scenario: MCP session management
|
||||
When I start a new MCP session
|
||||
Then session state should be initialized
|
||||
When I execute multiple related operations in the session
|
||||
Then session context should be maintained
|
||||
And operations should share session state
|
||||
When I close the MCP session
|
||||
Then all session resources should be cleaned up
|
||||
|
||||
@hypothesis
|
||||
Scenario: Stress test MCP operations
|
||||
When I execute many MCP operations rapidly
|
||||
Then all operations should complete or fail gracefully
|
||||
And the MCP client should remain responsive
|
||||
And no memory leaks should occur
|
||||
And connection pools should be managed properly
|
||||
|
||||
Scenario: MCP connection resilience
|
||||
Given I have an active MCP connection
|
||||
When the MCP server becomes temporarily unavailable
|
||||
Then the client should detect the connection loss
|
||||
And automatic reconnection should be attempted
|
||||
When the server becomes available again
|
||||
Then the connection should be restored
|
||||
And pending operations should resume
|
||||
|
||||
Scenario: MCP tool versioning and compatibility
|
||||
When I request tool version information
|
||||
Then I should receive version details for each tool
|
||||
And compatibility information should be provided
|
||||
When I execute a tool with version-specific parameters
|
||||
Then the correct tool version should be used
|
||||
And deprecated features should show warnings
|
||||
Reference in New Issue
Block a user