testmcpy 0.2.9__tar.gz → 0.2.10__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.
Files changed (127) hide show
  1. {testmcpy-0.2.9/testmcpy.egg-info → testmcpy-0.2.10}/PKG-INFO +1 -1
  2. {testmcpy-0.2.9 → testmcpy-0.2.10}/pyproject.toml +1 -1
  3. {testmcpy-0.2.9 → testmcpy-0.2.10}/testmcpy/mcp_profiles.py +5 -15
  4. {testmcpy-0.2.9 → testmcpy-0.2.10}/testmcpy/server/routers/mcp_profiles.py +3 -2
  5. {testmcpy-0.2.9 → testmcpy-0.2.10/testmcpy.egg-info}/PKG-INFO +1 -1
  6. {testmcpy-0.2.9 → testmcpy-0.2.10}/LICENSE +0 -0
  7. {testmcpy-0.2.9 → testmcpy-0.2.10}/MANIFEST.in +0 -0
  8. {testmcpy-0.2.9 → testmcpy-0.2.10}/NOTICE +0 -0
  9. {testmcpy-0.2.9 → testmcpy-0.2.10}/README.md +0 -0
  10. {testmcpy-0.2.9 → testmcpy-0.2.10}/setup.cfg +0 -0
  11. {testmcpy-0.2.9 → testmcpy-0.2.10}/testmcpy/__init__.py +0 -0
  12. {testmcpy-0.2.9 → testmcpy-0.2.10}/testmcpy/auth_debugger.py +0 -0
  13. {testmcpy-0.2.9 → testmcpy-0.2.10}/testmcpy/auth_flow_recorder.py +0 -0
  14. {testmcpy-0.2.9 → testmcpy-0.2.10}/testmcpy/cli/__init__.py +0 -0
  15. {testmcpy-0.2.9 → testmcpy-0.2.10}/testmcpy/cli/app.py +0 -0
  16. {testmcpy-0.2.9 → testmcpy-0.2.10}/testmcpy/cli/commands/__init__.py +0 -0
  17. {testmcpy-0.2.9 → testmcpy-0.2.10}/testmcpy/cli/commands/mcp.py +0 -0
  18. {testmcpy-0.2.9 → testmcpy-0.2.10}/testmcpy/cli/commands/run.py +0 -0
  19. {testmcpy-0.2.9 → testmcpy-0.2.10}/testmcpy/cli/commands/server.py +0 -0
  20. {testmcpy-0.2.9 → testmcpy-0.2.10}/testmcpy/cli/commands/tools.py +0 -0
  21. {testmcpy-0.2.9 → testmcpy-0.2.10}/testmcpy/cli/commands/tui.py +0 -0
  22. {testmcpy-0.2.9 → testmcpy-0.2.10}/testmcpy/config.py +0 -0
  23. {testmcpy-0.2.9 → testmcpy-0.2.10}/testmcpy/core/__init__.py +0 -0
  24. {testmcpy-0.2.9 → testmcpy-0.2.10}/testmcpy/core/chat_session.py +0 -0
  25. {testmcpy-0.2.9 → testmcpy-0.2.10}/testmcpy/core/docs_optimizer.py +0 -0
  26. {testmcpy-0.2.9 → testmcpy-0.2.10}/testmcpy/core/mcp_manager.py +0 -0
  27. {testmcpy-0.2.9 → testmcpy-0.2.10}/testmcpy/core/tool_comparison.py +0 -0
  28. {testmcpy-0.2.9 → testmcpy-0.2.10}/testmcpy/core/tool_discovery.py +0 -0
  29. {testmcpy-0.2.9 → testmcpy-0.2.10}/testmcpy/error_handlers.py +0 -0
  30. {testmcpy-0.2.9 → testmcpy-0.2.10}/testmcpy/evals/__init__.py +0 -0
  31. {testmcpy-0.2.9 → testmcpy-0.2.10}/testmcpy/evals/auth_evaluators.py +0 -0
  32. {testmcpy-0.2.9 → testmcpy-0.2.10}/testmcpy/evals/base_evaluators.py +0 -0
  33. {testmcpy-0.2.9 → testmcpy-0.2.10}/testmcpy/formatters/__init__.py +0 -0
  34. {testmcpy-0.2.9 → testmcpy-0.2.10}/testmcpy/formatters/base.py +0 -0
  35. {testmcpy-0.2.9 → testmcpy-0.2.10}/testmcpy/formatters/curl.py +0 -0
  36. {testmcpy-0.2.9 → testmcpy-0.2.10}/testmcpy/formatters/graphql.py +0 -0
  37. {testmcpy-0.2.9 → testmcpy-0.2.10}/testmcpy/formatters/javascript_client.py +0 -0
  38. {testmcpy-0.2.9 → testmcpy-0.2.10}/testmcpy/formatters/json_yaml.py +0 -0
  39. {testmcpy-0.2.9 → testmcpy-0.2.10}/testmcpy/formatters/protobuf.py +0 -0
  40. {testmcpy-0.2.9 → testmcpy-0.2.10}/testmcpy/formatters/python.py +0 -0
  41. {testmcpy-0.2.9 → testmcpy-0.2.10}/testmcpy/formatters/python_client.py +0 -0
  42. {testmcpy-0.2.9 → testmcpy-0.2.10}/testmcpy/formatters/thrift.py +0 -0
  43. {testmcpy-0.2.9 → testmcpy-0.2.10}/testmcpy/formatters/typescript.py +0 -0
  44. {testmcpy-0.2.9 → testmcpy-0.2.10}/testmcpy/formatters/typescript_client.py +0 -0
  45. {testmcpy-0.2.9 → testmcpy-0.2.10}/testmcpy/llm_profiles.py +0 -0
  46. {testmcpy-0.2.9 → testmcpy-0.2.10}/testmcpy/research/claude_sdk_detailed_exploration.py +0 -0
  47. {testmcpy-0.2.9 → testmcpy-0.2.10}/testmcpy/research/claude_sdk_poc.py +0 -0
  48. {testmcpy-0.2.9 → testmcpy-0.2.10}/testmcpy/research/claude_sdk_working_poc.py +0 -0
  49. {testmcpy-0.2.9 → testmcpy-0.2.10}/testmcpy/research/test_ollama_tools.py +0 -0
  50. {testmcpy-0.2.9 → testmcpy-0.2.10}/testmcpy/server/__init__.py +0 -0
  51. {testmcpy-0.2.9 → testmcpy-0.2.10}/testmcpy/server/api.py +0 -0
  52. {testmcpy-0.2.9 → testmcpy-0.2.10}/testmcpy/server/api.py.bak +0 -0
  53. {testmcpy-0.2.9 → testmcpy-0.2.10}/testmcpy/server/helpers/__init__.py +0 -0
  54. {testmcpy-0.2.9 → testmcpy-0.2.10}/testmcpy/server/helpers/mcp_config.py +0 -0
  55. {testmcpy-0.2.9 → testmcpy-0.2.10}/testmcpy/server/models.py +0 -0
  56. {testmcpy-0.2.9 → testmcpy-0.2.10}/testmcpy/server/routers/__init__.py +0 -0
  57. {testmcpy-0.2.9 → testmcpy-0.2.10}/testmcpy/server/routers/auth.py +0 -0
  58. {testmcpy-0.2.9 → testmcpy-0.2.10}/testmcpy/server/routers/generation_logs.py +0 -0
  59. {testmcpy-0.2.9 → testmcpy-0.2.10}/testmcpy/server/routers/llm.py +0 -0
  60. {testmcpy-0.2.9 → testmcpy-0.2.10}/testmcpy/server/routers/results.py +0 -0
  61. {testmcpy-0.2.9 → testmcpy-0.2.10}/testmcpy/server/routers/smoke_reports.py +0 -0
  62. {testmcpy-0.2.9 → testmcpy-0.2.10}/testmcpy/server/routers/test_profiles.py +0 -0
  63. {testmcpy-0.2.9 → testmcpy-0.2.10}/testmcpy/server/routers/tests.py +0 -0
  64. {testmcpy-0.2.9 → testmcpy-0.2.10}/testmcpy/server/routers/tools.py +0 -0
  65. {testmcpy-0.2.9 → testmcpy-0.2.10}/testmcpy/server/state.py +0 -0
  66. {testmcpy-0.2.9 → testmcpy-0.2.10}/testmcpy/server/tool_compare_endpoint.py +0 -0
  67. {testmcpy-0.2.9 → testmcpy-0.2.10}/testmcpy/server/websocket.py +0 -0
  68. {testmcpy-0.2.9 → testmcpy-0.2.10}/testmcpy/smoke_test.py +0 -0
  69. {testmcpy-0.2.9 → testmcpy-0.2.10}/testmcpy/src/__init__.py +0 -0
  70. {testmcpy-0.2.9 → testmcpy-0.2.10}/testmcpy/src/llm_integration.py +0 -0
  71. {testmcpy-0.2.9 → testmcpy-0.2.10}/testmcpy/src/mcp_client.py +0 -0
  72. {testmcpy-0.2.9 → testmcpy-0.2.10}/testmcpy/src/model_registry.py +0 -0
  73. {testmcpy-0.2.9 → testmcpy-0.2.10}/testmcpy/src/models.py +0 -0
  74. {testmcpy-0.2.9 → testmcpy-0.2.10}/testmcpy/src/runner_tools.py +0 -0
  75. {testmcpy-0.2.9 → testmcpy-0.2.10}/testmcpy/src/test_runner.py +0 -0
  76. {testmcpy-0.2.9 → testmcpy-0.2.10}/testmcpy/storage.py +0 -0
  77. {testmcpy-0.2.9 → testmcpy-0.2.10}/testmcpy/test_profiles.py +0 -0
  78. {testmcpy-0.2.9 → testmcpy-0.2.10}/testmcpy/ui/README.md +0 -0
  79. {testmcpy-0.2.9 → testmcpy-0.2.10}/testmcpy/ui/dist/assets/index-CaEBvXci.css +0 -0
  80. {testmcpy-0.2.9 → testmcpy-0.2.10}/testmcpy/ui/dist/assets/index-DbhZ0GnU.js +0 -0
  81. {testmcpy-0.2.9 → testmcpy-0.2.10}/testmcpy/ui/dist/index.html +0 -0
  82. {testmcpy-0.2.9 → testmcpy-0.2.10}/testmcpy/ui/index.html +0 -0
  83. {testmcpy-0.2.9 → testmcpy-0.2.10}/testmcpy/ui/package-lock.json +0 -0
  84. {testmcpy-0.2.9 → testmcpy-0.2.10}/testmcpy/ui/package.json +0 -0
  85. {testmcpy-0.2.9 → testmcpy-0.2.10}/testmcpy/ui/postcss.config.js +0 -0
  86. {testmcpy-0.2.9 → testmcpy-0.2.10}/testmcpy/ui/src/App.jsx +0 -0
  87. {testmcpy-0.2.9 → testmcpy-0.2.10}/testmcpy/ui/src/components/CompareToolsTab.jsx +0 -0
  88. {testmcpy-0.2.9 → testmcpy-0.2.10}/testmcpy/ui/src/components/ErrorAlert.jsx +0 -0
  89. {testmcpy-0.2.9 → testmcpy-0.2.10}/testmcpy/ui/src/components/ErrorBoundary.jsx +0 -0
  90. {testmcpy-0.2.9 → testmcpy-0.2.10}/testmcpy/ui/src/components/LLMProfileSelector.jsx +0 -0
  91. {testmcpy-0.2.9 → testmcpy-0.2.10}/testmcpy/ui/src/components/LoadingSpinner.jsx +0 -0
  92. {testmcpy-0.2.9 → testmcpy-0.2.10}/testmcpy/ui/src/components/MCPProfileSelector.jsx +0 -0
  93. {testmcpy-0.2.9 → testmcpy-0.2.10}/testmcpy/ui/src/components/OptimizeDocsModal.jsx +0 -0
  94. {testmcpy-0.2.9 → testmcpy-0.2.10}/testmcpy/ui/src/components/ParameterCard.jsx +0 -0
  95. {testmcpy-0.2.9 → testmcpy-0.2.10}/testmcpy/ui/src/components/SchemaCodeViewer.jsx +0 -0
  96. {testmcpy-0.2.9 → testmcpy-0.2.10}/testmcpy/ui/src/components/SkeletonLoader.jsx +0 -0
  97. {testmcpy-0.2.9 → testmcpy-0.2.10}/testmcpy/ui/src/components/TestGenerationModal.jsx +0 -0
  98. {testmcpy-0.2.9 → testmcpy-0.2.10}/testmcpy/ui/src/components/TestProfileSelector.jsx +0 -0
  99. {testmcpy-0.2.9 → testmcpy-0.2.10}/testmcpy/ui/src/components/TestResultPanel.jsx +0 -0
  100. {testmcpy-0.2.9 → testmcpy-0.2.10}/testmcpy/ui/src/components/TestStatusIndicator.jsx +0 -0
  101. {testmcpy-0.2.9 → testmcpy-0.2.10}/testmcpy/ui/src/components/ToolComparison.jsx +0 -0
  102. {testmcpy-0.2.9 → testmcpy-0.2.10}/testmcpy/ui/src/components/ToolDebugModal.jsx +0 -0
  103. {testmcpy-0.2.9 → testmcpy-0.2.10}/testmcpy/ui/src/components/TypeBadge.jsx +0 -0
  104. {testmcpy-0.2.9 → testmcpy-0.2.10}/testmcpy/ui/src/contexts/TestRunContext.jsx +0 -0
  105. {testmcpy-0.2.9 → testmcpy-0.2.10}/testmcpy/ui/src/hooks/useKeyboardShortcuts.js +0 -0
  106. {testmcpy-0.2.9 → testmcpy-0.2.10}/testmcpy/ui/src/hooks/useSafeFetch.js +0 -0
  107. {testmcpy-0.2.9 → testmcpy-0.2.10}/testmcpy/ui/src/index.css +0 -0
  108. {testmcpy-0.2.9 → testmcpy-0.2.10}/testmcpy/ui/src/main.jsx +0 -0
  109. {testmcpy-0.2.9 → testmcpy-0.2.10}/testmcpy/ui/src/pages/AuthDebugger.jsx +0 -0
  110. {testmcpy-0.2.9 → testmcpy-0.2.10}/testmcpy/ui/src/pages/ChatInterface.jsx +0 -0
  111. {testmcpy-0.2.9 → testmcpy-0.2.10}/testmcpy/ui/src/pages/Configuration.jsx +0 -0
  112. {testmcpy-0.2.9 → testmcpy-0.2.10}/testmcpy/ui/src/pages/GenerationHistory.jsx +0 -0
  113. {testmcpy-0.2.9 → testmcpy-0.2.10}/testmcpy/ui/src/pages/LLMProfiles.jsx +0 -0
  114. {testmcpy-0.2.9 → testmcpy-0.2.10}/testmcpy/ui/src/pages/MCPExplorer.jsx +0 -0
  115. {testmcpy-0.2.9 → testmcpy-0.2.10}/testmcpy/ui/src/pages/MCPProfiles.jsx +0 -0
  116. {testmcpy-0.2.9 → testmcpy-0.2.10}/testmcpy/ui/src/pages/ProfilesManager.jsx +0 -0
  117. {testmcpy-0.2.9 → testmcpy-0.2.10}/testmcpy/ui/src/pages/Reports.jsx +0 -0
  118. {testmcpy-0.2.9 → testmcpy-0.2.10}/testmcpy/ui/src/pages/TestManager.jsx +0 -0
  119. {testmcpy-0.2.9 → testmcpy-0.2.10}/testmcpy/ui/src/utils/__tests__/formatConverters.test.js +0 -0
  120. {testmcpy-0.2.9 → testmcpy-0.2.10}/testmcpy/ui/src/utils/formatConverters.js +0 -0
  121. {testmcpy-0.2.9 → testmcpy-0.2.10}/testmcpy/ui/tailwind.config.js +0 -0
  122. {testmcpy-0.2.9 → testmcpy-0.2.10}/testmcpy/ui/vite.config.js +0 -0
  123. {testmcpy-0.2.9 → testmcpy-0.2.10}/testmcpy.egg-info/SOURCES.txt +0 -0
  124. {testmcpy-0.2.9 → testmcpy-0.2.10}/testmcpy.egg-info/dependency_links.txt +0 -0
  125. {testmcpy-0.2.9 → testmcpy-0.2.10}/testmcpy.egg-info/entry_points.txt +0 -0
  126. {testmcpy-0.2.9 → testmcpy-0.2.10}/testmcpy.egg-info/requires.txt +0 -0
  127. {testmcpy-0.2.9 → testmcpy-0.2.10}/testmcpy.egg-info/top_level.txt +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: testmcpy
3
- Version: 0.2.9
3
+ Version: 0.2.10
4
4
  Summary: A comprehensive testing framework for validating LLM tool calling capabilities with MCP services
5
5
  Author: Amin Ghadersohi
6
6
  License-Expression: Apache-2.0
@@ -88,7 +88,7 @@ testmcpy = [
88
88
 
89
89
  [project]
90
90
  name = "testmcpy"
91
- version = "0.2.9"
91
+ version = "0.2.10"
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"
@@ -120,12 +120,7 @@ class MCPProfileConfig:
120
120
  """
121
121
  Find MCP services configuration file.
122
122
 
123
- Searches in order:
124
- 1. Provided config_path
125
- 2. .mcp_services.yaml in current directory
126
- 3. .mcp_services.yaml in parent directories (up to 5 levels)
127
-
128
- Note: User home directory (~/.mcp_services.yaml) is NOT searched.
123
+ Looks for .mcp_services.yaml in the current working directory.
129
124
  """
130
125
  if config_path:
131
126
  path = Path(config_path)
@@ -133,15 +128,10 @@ class MCPProfileConfig:
133
128
  return path
134
129
  return None
135
130
 
136
- # Check current directory and parents
137
- current = Path.cwd()
138
- for _ in range(5):
139
- config_file = current / ".mcp_services.yaml"
140
- if config_file.exists():
141
- return config_file
142
- if current.parent == current:
143
- break
144
- current = current.parent
131
+ # Check current directory only (same as llm_profiles)
132
+ config_file = Path.cwd() / ".mcp_services.yaml"
133
+ if config_file.exists():
134
+ return config_file
145
135
 
146
136
  return None
147
137
 
@@ -166,10 +166,11 @@ global:
166
166
  @router.get("/profiles")
167
167
  async def list_mcp_profiles():
168
168
  """List available MCP profiles from .mcp_services.yaml."""
169
- from testmcpy.mcp_profiles import get_profile_config
169
+ from testmcpy.mcp_profiles import reload_profile_config
170
170
 
171
171
  try:
172
- profile_config = get_profile_config()
172
+ # Always reload to pick up file changes
173
+ profile_config = reload_profile_config()
173
174
  if not profile_config.has_profiles():
174
175
  return {
175
176
  "profiles": [],
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: testmcpy
3
- Version: 0.2.9
3
+ Version: 0.2.10
4
4
  Summary: A comprehensive testing framework for validating LLM tool calling capabilities with MCP services
5
5
  Author: Amin Ghadersohi
6
6
  License-Expression: Apache-2.0
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