testmcpy 0.2.8__tar.gz → 0.2.9__tar.gz
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.
- {testmcpy-0.2.8/testmcpy.egg-info → testmcpy-0.2.9}/PKG-INFO +1 -1
- {testmcpy-0.2.8 → testmcpy-0.2.9}/pyproject.toml +1 -1
- {testmcpy-0.2.8 → testmcpy-0.2.9}/testmcpy/server/routers/mcp_profiles.py +24 -19
- {testmcpy-0.2.8 → testmcpy-0.2.9/testmcpy.egg-info}/PKG-INFO +1 -1
- {testmcpy-0.2.8 → testmcpy-0.2.9}/LICENSE +0 -0
- {testmcpy-0.2.8 → testmcpy-0.2.9}/MANIFEST.in +0 -0
- {testmcpy-0.2.8 → testmcpy-0.2.9}/NOTICE +0 -0
- {testmcpy-0.2.8 → testmcpy-0.2.9}/README.md +0 -0
- {testmcpy-0.2.8 → testmcpy-0.2.9}/setup.cfg +0 -0
- {testmcpy-0.2.8 → testmcpy-0.2.9}/testmcpy/__init__.py +0 -0
- {testmcpy-0.2.8 → testmcpy-0.2.9}/testmcpy/auth_debugger.py +0 -0
- {testmcpy-0.2.8 → testmcpy-0.2.9}/testmcpy/auth_flow_recorder.py +0 -0
- {testmcpy-0.2.8 → testmcpy-0.2.9}/testmcpy/cli/__init__.py +0 -0
- {testmcpy-0.2.8 → testmcpy-0.2.9}/testmcpy/cli/app.py +0 -0
- {testmcpy-0.2.8 → testmcpy-0.2.9}/testmcpy/cli/commands/__init__.py +0 -0
- {testmcpy-0.2.8 → testmcpy-0.2.9}/testmcpy/cli/commands/mcp.py +0 -0
- {testmcpy-0.2.8 → testmcpy-0.2.9}/testmcpy/cli/commands/run.py +0 -0
- {testmcpy-0.2.8 → testmcpy-0.2.9}/testmcpy/cli/commands/server.py +0 -0
- {testmcpy-0.2.8 → testmcpy-0.2.9}/testmcpy/cli/commands/tools.py +0 -0
- {testmcpy-0.2.8 → testmcpy-0.2.9}/testmcpy/cli/commands/tui.py +0 -0
- {testmcpy-0.2.8 → testmcpy-0.2.9}/testmcpy/config.py +0 -0
- {testmcpy-0.2.8 → testmcpy-0.2.9}/testmcpy/core/__init__.py +0 -0
- {testmcpy-0.2.8 → testmcpy-0.2.9}/testmcpy/core/chat_session.py +0 -0
- {testmcpy-0.2.8 → testmcpy-0.2.9}/testmcpy/core/docs_optimizer.py +0 -0
- {testmcpy-0.2.8 → testmcpy-0.2.9}/testmcpy/core/mcp_manager.py +0 -0
- {testmcpy-0.2.8 → testmcpy-0.2.9}/testmcpy/core/tool_comparison.py +0 -0
- {testmcpy-0.2.8 → testmcpy-0.2.9}/testmcpy/core/tool_discovery.py +0 -0
- {testmcpy-0.2.8 → testmcpy-0.2.9}/testmcpy/error_handlers.py +0 -0
- {testmcpy-0.2.8 → testmcpy-0.2.9}/testmcpy/evals/__init__.py +0 -0
- {testmcpy-0.2.8 → testmcpy-0.2.9}/testmcpy/evals/auth_evaluators.py +0 -0
- {testmcpy-0.2.8 → testmcpy-0.2.9}/testmcpy/evals/base_evaluators.py +0 -0
- {testmcpy-0.2.8 → testmcpy-0.2.9}/testmcpy/formatters/__init__.py +0 -0
- {testmcpy-0.2.8 → testmcpy-0.2.9}/testmcpy/formatters/base.py +0 -0
- {testmcpy-0.2.8 → testmcpy-0.2.9}/testmcpy/formatters/curl.py +0 -0
- {testmcpy-0.2.8 → testmcpy-0.2.9}/testmcpy/formatters/graphql.py +0 -0
- {testmcpy-0.2.8 → testmcpy-0.2.9}/testmcpy/formatters/javascript_client.py +0 -0
- {testmcpy-0.2.8 → testmcpy-0.2.9}/testmcpy/formatters/json_yaml.py +0 -0
- {testmcpy-0.2.8 → testmcpy-0.2.9}/testmcpy/formatters/protobuf.py +0 -0
- {testmcpy-0.2.8 → testmcpy-0.2.9}/testmcpy/formatters/python.py +0 -0
- {testmcpy-0.2.8 → testmcpy-0.2.9}/testmcpy/formatters/python_client.py +0 -0
- {testmcpy-0.2.8 → testmcpy-0.2.9}/testmcpy/formatters/thrift.py +0 -0
- {testmcpy-0.2.8 → testmcpy-0.2.9}/testmcpy/formatters/typescript.py +0 -0
- {testmcpy-0.2.8 → testmcpy-0.2.9}/testmcpy/formatters/typescript_client.py +0 -0
- {testmcpy-0.2.8 → testmcpy-0.2.9}/testmcpy/llm_profiles.py +0 -0
- {testmcpy-0.2.8 → testmcpy-0.2.9}/testmcpy/mcp_profiles.py +0 -0
- {testmcpy-0.2.8 → testmcpy-0.2.9}/testmcpy/research/claude_sdk_detailed_exploration.py +0 -0
- {testmcpy-0.2.8 → testmcpy-0.2.9}/testmcpy/research/claude_sdk_poc.py +0 -0
- {testmcpy-0.2.8 → testmcpy-0.2.9}/testmcpy/research/claude_sdk_working_poc.py +0 -0
- {testmcpy-0.2.8 → testmcpy-0.2.9}/testmcpy/research/test_ollama_tools.py +0 -0
- {testmcpy-0.2.8 → testmcpy-0.2.9}/testmcpy/server/__init__.py +0 -0
- {testmcpy-0.2.8 → testmcpy-0.2.9}/testmcpy/server/api.py +0 -0
- {testmcpy-0.2.8 → testmcpy-0.2.9}/testmcpy/server/api.py.bak +0 -0
- {testmcpy-0.2.8 → testmcpy-0.2.9}/testmcpy/server/helpers/__init__.py +0 -0
- {testmcpy-0.2.8 → testmcpy-0.2.9}/testmcpy/server/helpers/mcp_config.py +0 -0
- {testmcpy-0.2.8 → testmcpy-0.2.9}/testmcpy/server/models.py +0 -0
- {testmcpy-0.2.8 → testmcpy-0.2.9}/testmcpy/server/routers/__init__.py +0 -0
- {testmcpy-0.2.8 → testmcpy-0.2.9}/testmcpy/server/routers/auth.py +0 -0
- {testmcpy-0.2.8 → testmcpy-0.2.9}/testmcpy/server/routers/generation_logs.py +0 -0
- {testmcpy-0.2.8 → testmcpy-0.2.9}/testmcpy/server/routers/llm.py +0 -0
- {testmcpy-0.2.8 → testmcpy-0.2.9}/testmcpy/server/routers/results.py +0 -0
- {testmcpy-0.2.8 → testmcpy-0.2.9}/testmcpy/server/routers/smoke_reports.py +0 -0
- {testmcpy-0.2.8 → testmcpy-0.2.9}/testmcpy/server/routers/test_profiles.py +0 -0
- {testmcpy-0.2.8 → testmcpy-0.2.9}/testmcpy/server/routers/tests.py +0 -0
- {testmcpy-0.2.8 → testmcpy-0.2.9}/testmcpy/server/routers/tools.py +0 -0
- {testmcpy-0.2.8 → testmcpy-0.2.9}/testmcpy/server/state.py +0 -0
- {testmcpy-0.2.8 → testmcpy-0.2.9}/testmcpy/server/tool_compare_endpoint.py +0 -0
- {testmcpy-0.2.8 → testmcpy-0.2.9}/testmcpy/server/websocket.py +0 -0
- {testmcpy-0.2.8 → testmcpy-0.2.9}/testmcpy/smoke_test.py +0 -0
- {testmcpy-0.2.8 → testmcpy-0.2.9}/testmcpy/src/__init__.py +0 -0
- {testmcpy-0.2.8 → testmcpy-0.2.9}/testmcpy/src/llm_integration.py +0 -0
- {testmcpy-0.2.8 → testmcpy-0.2.9}/testmcpy/src/mcp_client.py +0 -0
- {testmcpy-0.2.8 → testmcpy-0.2.9}/testmcpy/src/model_registry.py +0 -0
- {testmcpy-0.2.8 → testmcpy-0.2.9}/testmcpy/src/models.py +0 -0
- {testmcpy-0.2.8 → testmcpy-0.2.9}/testmcpy/src/runner_tools.py +0 -0
- {testmcpy-0.2.8 → testmcpy-0.2.9}/testmcpy/src/test_runner.py +0 -0
- {testmcpy-0.2.8 → testmcpy-0.2.9}/testmcpy/storage.py +0 -0
- {testmcpy-0.2.8 → testmcpy-0.2.9}/testmcpy/test_profiles.py +0 -0
- {testmcpy-0.2.8 → testmcpy-0.2.9}/testmcpy/ui/README.md +0 -0
- {testmcpy-0.2.8 → testmcpy-0.2.9}/testmcpy/ui/dist/assets/index-CaEBvXci.css +0 -0
- {testmcpy-0.2.8 → testmcpy-0.2.9}/testmcpy/ui/dist/assets/index-DbhZ0GnU.js +0 -0
- {testmcpy-0.2.8 → testmcpy-0.2.9}/testmcpy/ui/dist/index.html +0 -0
- {testmcpy-0.2.8 → testmcpy-0.2.9}/testmcpy/ui/index.html +0 -0
- {testmcpy-0.2.8 → testmcpy-0.2.9}/testmcpy/ui/package-lock.json +0 -0
- {testmcpy-0.2.8 → testmcpy-0.2.9}/testmcpy/ui/package.json +0 -0
- {testmcpy-0.2.8 → testmcpy-0.2.9}/testmcpy/ui/postcss.config.js +0 -0
- {testmcpy-0.2.8 → testmcpy-0.2.9}/testmcpy/ui/src/App.jsx +0 -0
- {testmcpy-0.2.8 → testmcpy-0.2.9}/testmcpy/ui/src/components/CompareToolsTab.jsx +0 -0
- {testmcpy-0.2.8 → testmcpy-0.2.9}/testmcpy/ui/src/components/ErrorAlert.jsx +0 -0
- {testmcpy-0.2.8 → testmcpy-0.2.9}/testmcpy/ui/src/components/ErrorBoundary.jsx +0 -0
- {testmcpy-0.2.8 → testmcpy-0.2.9}/testmcpy/ui/src/components/LLMProfileSelector.jsx +0 -0
- {testmcpy-0.2.8 → testmcpy-0.2.9}/testmcpy/ui/src/components/LoadingSpinner.jsx +0 -0
- {testmcpy-0.2.8 → testmcpy-0.2.9}/testmcpy/ui/src/components/MCPProfileSelector.jsx +0 -0
- {testmcpy-0.2.8 → testmcpy-0.2.9}/testmcpy/ui/src/components/OptimizeDocsModal.jsx +0 -0
- {testmcpy-0.2.8 → testmcpy-0.2.9}/testmcpy/ui/src/components/ParameterCard.jsx +0 -0
- {testmcpy-0.2.8 → testmcpy-0.2.9}/testmcpy/ui/src/components/SchemaCodeViewer.jsx +0 -0
- {testmcpy-0.2.8 → testmcpy-0.2.9}/testmcpy/ui/src/components/SkeletonLoader.jsx +0 -0
- {testmcpy-0.2.8 → testmcpy-0.2.9}/testmcpy/ui/src/components/TestGenerationModal.jsx +0 -0
- {testmcpy-0.2.8 → testmcpy-0.2.9}/testmcpy/ui/src/components/TestProfileSelector.jsx +0 -0
- {testmcpy-0.2.8 → testmcpy-0.2.9}/testmcpy/ui/src/components/TestResultPanel.jsx +0 -0
- {testmcpy-0.2.8 → testmcpy-0.2.9}/testmcpy/ui/src/components/TestStatusIndicator.jsx +0 -0
- {testmcpy-0.2.8 → testmcpy-0.2.9}/testmcpy/ui/src/components/ToolComparison.jsx +0 -0
- {testmcpy-0.2.8 → testmcpy-0.2.9}/testmcpy/ui/src/components/ToolDebugModal.jsx +0 -0
- {testmcpy-0.2.8 → testmcpy-0.2.9}/testmcpy/ui/src/components/TypeBadge.jsx +0 -0
- {testmcpy-0.2.8 → testmcpy-0.2.9}/testmcpy/ui/src/contexts/TestRunContext.jsx +0 -0
- {testmcpy-0.2.8 → testmcpy-0.2.9}/testmcpy/ui/src/hooks/useKeyboardShortcuts.js +0 -0
- {testmcpy-0.2.8 → testmcpy-0.2.9}/testmcpy/ui/src/hooks/useSafeFetch.js +0 -0
- {testmcpy-0.2.8 → testmcpy-0.2.9}/testmcpy/ui/src/index.css +0 -0
- {testmcpy-0.2.8 → testmcpy-0.2.9}/testmcpy/ui/src/main.jsx +0 -0
- {testmcpy-0.2.8 → testmcpy-0.2.9}/testmcpy/ui/src/pages/AuthDebugger.jsx +0 -0
- {testmcpy-0.2.8 → testmcpy-0.2.9}/testmcpy/ui/src/pages/ChatInterface.jsx +0 -0
- {testmcpy-0.2.8 → testmcpy-0.2.9}/testmcpy/ui/src/pages/Configuration.jsx +0 -0
- {testmcpy-0.2.8 → testmcpy-0.2.9}/testmcpy/ui/src/pages/GenerationHistory.jsx +0 -0
- {testmcpy-0.2.8 → testmcpy-0.2.9}/testmcpy/ui/src/pages/LLMProfiles.jsx +0 -0
- {testmcpy-0.2.8 → testmcpy-0.2.9}/testmcpy/ui/src/pages/MCPExplorer.jsx +0 -0
- {testmcpy-0.2.8 → testmcpy-0.2.9}/testmcpy/ui/src/pages/MCPProfiles.jsx +0 -0
- {testmcpy-0.2.8 → testmcpy-0.2.9}/testmcpy/ui/src/pages/ProfilesManager.jsx +0 -0
- {testmcpy-0.2.8 → testmcpy-0.2.9}/testmcpy/ui/src/pages/Reports.jsx +0 -0
- {testmcpy-0.2.8 → testmcpy-0.2.9}/testmcpy/ui/src/pages/TestManager.jsx +0 -0
- {testmcpy-0.2.8 → testmcpy-0.2.9}/testmcpy/ui/src/utils/__tests__/formatConverters.test.js +0 -0
- {testmcpy-0.2.8 → testmcpy-0.2.9}/testmcpy/ui/src/utils/formatConverters.js +0 -0
- {testmcpy-0.2.8 → testmcpy-0.2.9}/testmcpy/ui/tailwind.config.js +0 -0
- {testmcpy-0.2.8 → testmcpy-0.2.9}/testmcpy/ui/vite.config.js +0 -0
- {testmcpy-0.2.8 → testmcpy-0.2.9}/testmcpy.egg-info/SOURCES.txt +0 -0
- {testmcpy-0.2.8 → testmcpy-0.2.9}/testmcpy.egg-info/dependency_links.txt +0 -0
- {testmcpy-0.2.8 → testmcpy-0.2.9}/testmcpy.egg-info/entry_points.txt +0 -0
- {testmcpy-0.2.8 → testmcpy-0.2.9}/testmcpy.egg-info/requires.txt +0 -0
- {testmcpy-0.2.8 → testmcpy-0.2.9}/testmcpy.egg-info/top_level.txt +0 -0
|
@@ -88,7 +88,7 @@ testmcpy = [
|
|
|
88
88
|
|
|
89
89
|
[project]
|
|
90
90
|
name = "testmcpy"
|
|
91
|
-
version = "0.2.
|
|
91
|
+
version = "0.2.9"
|
|
92
92
|
description = "A comprehensive testing framework for validating LLM tool calling capabilities with MCP services"
|
|
93
93
|
authors = [{name = "Amin Ghadersohi"}]
|
|
94
94
|
license = "Apache-2.0"
|
|
@@ -119,35 +119,40 @@ profiles:
|
|
|
119
119
|
my-profile:
|
|
120
120
|
# Display name for the profile
|
|
121
121
|
name: My MCP Server
|
|
122
|
+
description: My MCP server configuration
|
|
122
123
|
|
|
123
|
-
# MCP servers in this profile
|
|
124
|
+
# MCP servers in this profile (list format with -)
|
|
124
125
|
mcps:
|
|
125
|
-
|
|
126
|
-
#
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
# How to start the server
|
|
130
|
-
# Option 1: Command to run
|
|
131
|
-
command: npx
|
|
132
|
-
args:
|
|
133
|
-
- -y
|
|
134
|
-
- "@my-org/my-mcp-server"
|
|
135
|
-
|
|
136
|
-
# Option 2: URL for remote server
|
|
137
|
-
# url: http://localhost:3000/mcp
|
|
138
|
-
|
|
139
|
-
# Environment variables (optional)
|
|
140
|
-
# env:
|
|
141
|
-
# API_KEY: your-api-key
|
|
126
|
+
- name: My Server
|
|
127
|
+
# URL of the MCP server
|
|
128
|
+
mcp_url: http://localhost:3000/mcp
|
|
142
129
|
|
|
143
130
|
# Authentication (optional)
|
|
144
131
|
# auth:
|
|
145
132
|
# type: bearer
|
|
146
|
-
#
|
|
133
|
+
# token: your-bearer-token
|
|
134
|
+
|
|
135
|
+
# For JWT auth:
|
|
136
|
+
# auth:
|
|
137
|
+
# type: jwt
|
|
138
|
+
# api_url: https://api.example.com/auth/
|
|
139
|
+
# api_token: your-api-token
|
|
140
|
+
# api_secret: your-api-secret
|
|
141
|
+
|
|
142
|
+
# Global settings (optional)
|
|
143
|
+
global:
|
|
144
|
+
timeout: 30
|
|
145
|
+
rate_limit:
|
|
146
|
+
requests_per_minute: 60
|
|
147
147
|
"""
|
|
148
148
|
|
|
149
149
|
config_file.write_text(default_template)
|
|
150
150
|
|
|
151
|
+
# Reload the profile config cache
|
|
152
|
+
from testmcpy.mcp_profiles import reload_profile_config
|
|
153
|
+
|
|
154
|
+
reload_profile_config()
|
|
155
|
+
|
|
151
156
|
return {
|
|
152
157
|
"success": True,
|
|
153
158
|
"message": "Created .mcp_services.yaml with default template",
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|