deepset-mcp 0.0.10__tar.gz → 0.0.12__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 (158) hide show
  1. {deepset_mcp-0.0.10 → deepset_mcp-0.0.12}/PKG-INFO +1 -1
  2. deepset_mcp-0.0.12/entrypoint.sh +26 -0
  3. {deepset_mcp-0.0.10 → deepset_mcp-0.0.12}/src/deepset_mcp/main.py +19 -0
  4. {deepset_mcp-0.0.10 → deepset_mcp-0.0.12}/src/deepset_mcp/mcp/tool_registry.py +5 -0
  5. {deepset_mcp-0.0.10 → deepset_mcp-0.0.12}/src/deepset_mcp/tools/__init__.py +2 -0
  6. {deepset_mcp-0.0.10 → deepset_mcp-0.0.12}/src/deepset_mcp/tools/pipeline.py +50 -0
  7. deepset_mcp-0.0.10/entrypoint.sh +0 -20
  8. {deepset_mcp-0.0.10 → deepset_mcp-0.0.12}/.github/workflows/ai_agent.yml +0 -0
  9. {deepset_mcp-0.0.10 → deepset_mcp-0.0.12}/.github/workflows/ci.yml +0 -0
  10. {deepset_mcp-0.0.10 → deepset_mcp-0.0.12}/.github/workflows/docker_push.yml +0 -0
  11. {deepset_mcp-0.0.10 → deepset_mcp-0.0.12}/.github/workflows/publish_docs.yml +0 -0
  12. {deepset_mcp-0.0.10 → deepset_mcp-0.0.12}/.github/workflows/pypi_release.yml +0 -0
  13. {deepset_mcp-0.0.10 → deepset_mcp-0.0.12}/.gitignore +0 -0
  14. {deepset_mcp-0.0.10 → deepset_mcp-0.0.12}/.python-version +0 -0
  15. {deepset_mcp-0.0.10 → deepset_mcp-0.0.12}/Dockerfile +0 -0
  16. {deepset_mcp-0.0.10 → deepset_mcp-0.0.12}/LICENSE +0 -0
  17. {deepset_mcp-0.0.10 → deepset_mcp-0.0.12}/Makefile +0 -0
  18. {deepset_mcp-0.0.10 → deepset_mcp-0.0.12}/README.md +0 -0
  19. {deepset_mcp-0.0.10 → deepset_mcp-0.0.12}/REPO.md +0 -0
  20. {deepset_mcp-0.0.10 → deepset_mcp-0.0.12}/assets/claude_desktop_projects.png +0 -0
  21. {deepset_mcp-0.0.10 → deepset_mcp-0.0.12}/assets/claude_desktop_with_tools.png +0 -0
  22. {deepset_mcp-0.0.10 → deepset_mcp-0.0.12}/assets/deepset-mcp-3.gif +0 -0
  23. {deepset_mcp-0.0.10 → deepset_mcp-0.0.12}/docs/concepts/mcp_server_concepts.md +0 -0
  24. {deepset_mcp-0.0.10 → deepset_mcp-0.0.12}/docs/concepts/sdk_concepts.md +0 -0
  25. {deepset_mcp-0.0.10 → deepset_mcp-0.0.12}/docs/guides/api_sdk.md +0 -0
  26. {deepset_mcp-0.0.10 → deepset_mcp-0.0.12}/docs/guides/mcp_server.md +0 -0
  27. {deepset_mcp-0.0.10 → deepset_mcp-0.0.12}/docs/index.md +0 -0
  28. {deepset_mcp-0.0.10 → deepset_mcp-0.0.12}/docs/installation.md +0 -0
  29. {deepset_mcp-0.0.10 → deepset_mcp-0.0.12}/docs/reference/api_sdk_reference.md +0 -0
  30. {deepset_mcp-0.0.10 → deepset_mcp-0.0.12}/docs/reference/mcp_reference.md +0 -0
  31. {deepset_mcp-0.0.10 → deepset_mcp-0.0.12}/docs/reference/tool_reference.md +0 -0
  32. {deepset_mcp-0.0.10 → deepset_mcp-0.0.12}/license-header.txt +0 -0
  33. {deepset_mcp-0.0.10 → deepset_mcp-0.0.12}/licenserc.toml +0 -0
  34. {deepset_mcp-0.0.10 → deepset_mcp-0.0.12}/mkdocs.yml +0 -0
  35. {deepset_mcp-0.0.10 → deepset_mcp-0.0.12}/pyproject.toml +0 -0
  36. {deepset_mcp-0.0.10 → deepset_mcp-0.0.12}/src/deepset_mcp/__init__.py +0 -0
  37. {deepset_mcp-0.0.10 → deepset_mcp-0.0.12}/src/deepset_mcp/api/__init__.py +0 -0
  38. {deepset_mcp-0.0.10 → deepset_mcp-0.0.12}/src/deepset_mcp/api/client.py +0 -0
  39. {deepset_mcp-0.0.10 → deepset_mcp-0.0.12}/src/deepset_mcp/api/custom_components/__init__.py +0 -0
  40. {deepset_mcp-0.0.10 → deepset_mcp-0.0.12}/src/deepset_mcp/api/custom_components/models.py +0 -0
  41. {deepset_mcp-0.0.10 → deepset_mcp-0.0.12}/src/deepset_mcp/api/custom_components/protocols.py +0 -0
  42. {deepset_mcp-0.0.10 → deepset_mcp-0.0.12}/src/deepset_mcp/api/custom_components/resource.py +0 -0
  43. {deepset_mcp-0.0.10 → deepset_mcp-0.0.12}/src/deepset_mcp/api/exceptions.py +0 -0
  44. {deepset_mcp-0.0.10 → deepset_mcp-0.0.12}/src/deepset_mcp/api/haystack_service/__init__.py +0 -0
  45. {deepset_mcp-0.0.10 → deepset_mcp-0.0.12}/src/deepset_mcp/api/haystack_service/protocols.py +0 -0
  46. {deepset_mcp-0.0.10 → deepset_mcp-0.0.12}/src/deepset_mcp/api/haystack_service/resource.py +0 -0
  47. {deepset_mcp-0.0.10 → deepset_mcp-0.0.12}/src/deepset_mcp/api/indexes/__init__.py +0 -0
  48. {deepset_mcp-0.0.10 → deepset_mcp-0.0.12}/src/deepset_mcp/api/indexes/models.py +0 -0
  49. {deepset_mcp-0.0.10 → deepset_mcp-0.0.12}/src/deepset_mcp/api/indexes/protocols.py +0 -0
  50. {deepset_mcp-0.0.10 → deepset_mcp-0.0.12}/src/deepset_mcp/api/indexes/resource.py +0 -0
  51. {deepset_mcp-0.0.10 → deepset_mcp-0.0.12}/src/deepset_mcp/api/integrations/__init__.py +0 -0
  52. {deepset_mcp-0.0.10 → deepset_mcp-0.0.12}/src/deepset_mcp/api/integrations/models.py +0 -0
  53. {deepset_mcp-0.0.10 → deepset_mcp-0.0.12}/src/deepset_mcp/api/integrations/protocols.py +0 -0
  54. {deepset_mcp-0.0.10 → deepset_mcp-0.0.12}/src/deepset_mcp/api/integrations/resource.py +0 -0
  55. {deepset_mcp-0.0.10 → deepset_mcp-0.0.12}/src/deepset_mcp/api/pipeline/__init__.py +0 -0
  56. {deepset_mcp-0.0.10 → deepset_mcp-0.0.12}/src/deepset_mcp/api/pipeline/models.py +0 -0
  57. {deepset_mcp-0.0.10 → deepset_mcp-0.0.12}/src/deepset_mcp/api/pipeline/protocols.py +0 -0
  58. {deepset_mcp-0.0.10 → deepset_mcp-0.0.12}/src/deepset_mcp/api/pipeline/resource.py +0 -0
  59. {deepset_mcp-0.0.10 → deepset_mcp-0.0.12}/src/deepset_mcp/api/pipeline_template/__init__.py +0 -0
  60. {deepset_mcp-0.0.10 → deepset_mcp-0.0.12}/src/deepset_mcp/api/pipeline_template/models.py +0 -0
  61. {deepset_mcp-0.0.10 → deepset_mcp-0.0.12}/src/deepset_mcp/api/pipeline_template/protocols.py +0 -0
  62. {deepset_mcp-0.0.10 → deepset_mcp-0.0.12}/src/deepset_mcp/api/pipeline_template/resource.py +0 -0
  63. {deepset_mcp-0.0.10 → deepset_mcp-0.0.12}/src/deepset_mcp/api/protocols.py +0 -0
  64. {deepset_mcp-0.0.10 → deepset_mcp-0.0.12}/src/deepset_mcp/api/secrets/__init__.py +0 -0
  65. {deepset_mcp-0.0.10 → deepset_mcp-0.0.12}/src/deepset_mcp/api/secrets/models.py +0 -0
  66. {deepset_mcp-0.0.10 → deepset_mcp-0.0.12}/src/deepset_mcp/api/secrets/protocols.py +0 -0
  67. {deepset_mcp-0.0.10 → deepset_mcp-0.0.12}/src/deepset_mcp/api/secrets/resource.py +0 -0
  68. {deepset_mcp-0.0.10 → deepset_mcp-0.0.12}/src/deepset_mcp/api/shared_models.py +0 -0
  69. {deepset_mcp-0.0.10 → deepset_mcp-0.0.12}/src/deepset_mcp/api/transport.py +0 -0
  70. {deepset_mcp-0.0.10 → deepset_mcp-0.0.12}/src/deepset_mcp/api/user/__init__.py +0 -0
  71. {deepset_mcp-0.0.10 → deepset_mcp-0.0.12}/src/deepset_mcp/api/user/protocols.py +0 -0
  72. {deepset_mcp-0.0.10 → deepset_mcp-0.0.12}/src/deepset_mcp/api/user/resource.py +0 -0
  73. {deepset_mcp-0.0.10 → deepset_mcp-0.0.12}/src/deepset_mcp/api/workspace/__init__.py +0 -0
  74. {deepset_mcp-0.0.10 → deepset_mcp-0.0.12}/src/deepset_mcp/api/workspace/models.py +0 -0
  75. {deepset_mcp-0.0.10 → deepset_mcp-0.0.12}/src/deepset_mcp/api/workspace/protocols.py +0 -0
  76. {deepset_mcp-0.0.10 → deepset_mcp-0.0.12}/src/deepset_mcp/api/workspace/resource.py +0 -0
  77. {deepset_mcp-0.0.10 → deepset_mcp-0.0.12}/src/deepset_mcp/config.py +0 -0
  78. {deepset_mcp-0.0.10 → deepset_mcp-0.0.12}/src/deepset_mcp/initialize_embedding_model.py +0 -0
  79. {deepset_mcp-0.0.10 → deepset_mcp-0.0.12}/src/deepset_mcp/mcp/__init__.py +0 -0
  80. {deepset_mcp-0.0.10 → deepset_mcp-0.0.12}/src/deepset_mcp/mcp/server.py +0 -0
  81. {deepset_mcp-0.0.10 → deepset_mcp-0.0.12}/src/deepset_mcp/mcp/store.py +0 -0
  82. {deepset_mcp-0.0.10 → deepset_mcp-0.0.12}/src/deepset_mcp/mcp/tool_factory.py +0 -0
  83. {deepset_mcp-0.0.10 → deepset_mcp-0.0.12}/src/deepset_mcp/mcp/tool_models.py +0 -0
  84. {deepset_mcp-0.0.10 → deepset_mcp-0.0.12}/src/deepset_mcp/prompts/deepset_copilot_prompt.md +0 -0
  85. {deepset_mcp-0.0.10 → deepset_mcp-0.0.12}/src/deepset_mcp/prompts/deepset_debugging_agent.md +0 -0
  86. {deepset_mcp-0.0.10 → deepset_mcp-0.0.12}/src/deepset_mcp/py.typed +0 -0
  87. {deepset_mcp-0.0.10 → deepset_mcp-0.0.12}/src/deepset_mcp/tokonomics/__init__.py +0 -0
  88. {deepset_mcp-0.0.10 → deepset_mcp-0.0.12}/src/deepset_mcp/tokonomics/decorators.py +0 -0
  89. {deepset_mcp-0.0.10 → deepset_mcp-0.0.12}/src/deepset_mcp/tokonomics/explorer.py +0 -0
  90. {deepset_mcp-0.0.10 → deepset_mcp-0.0.12}/src/deepset_mcp/tokonomics/object_store.py +0 -0
  91. {deepset_mcp-0.0.10 → deepset_mcp-0.0.12}/src/deepset_mcp/tools/custom_components.py +0 -0
  92. {deepset_mcp-0.0.10 → deepset_mcp-0.0.12}/src/deepset_mcp/tools/doc_search.py +0 -0
  93. {deepset_mcp-0.0.10 → deepset_mcp-0.0.12}/src/deepset_mcp/tools/haystack_service.py +0 -0
  94. {deepset_mcp-0.0.10 → deepset_mcp-0.0.12}/src/deepset_mcp/tools/haystack_service_models.py +0 -0
  95. {deepset_mcp-0.0.10 → deepset_mcp-0.0.12}/src/deepset_mcp/tools/indexes.py +0 -0
  96. {deepset_mcp-0.0.10 → deepset_mcp-0.0.12}/src/deepset_mcp/tools/model_protocol.py +0 -0
  97. {deepset_mcp-0.0.10 → deepset_mcp-0.0.12}/src/deepset_mcp/tools/object_store.py +0 -0
  98. {deepset_mcp-0.0.10 → deepset_mcp-0.0.12}/src/deepset_mcp/tools/pipeline_template.py +0 -0
  99. {deepset_mcp-0.0.10 → deepset_mcp-0.0.12}/src/deepset_mcp/tools/secrets.py +0 -0
  100. {deepset_mcp-0.0.10 → deepset_mcp-0.0.12}/src/deepset_mcp/tools/workspace.py +0 -0
  101. {deepset_mcp-0.0.10 → deepset_mcp-0.0.12}/test/__init__.py +0 -0
  102. {deepset_mcp-0.0.10 → deepset_mcp-0.0.12}/test/integration/__init__.py +0 -0
  103. {deepset_mcp-0.0.10 → deepset_mcp-0.0.12}/test/integration/conftest.py +0 -0
  104. {deepset_mcp-0.0.10 → deepset_mcp-0.0.12}/test/integration/test_integration_haystack_service_resource.py +0 -0
  105. {deepset_mcp-0.0.10 → deepset_mcp-0.0.12}/test/integration/test_integration_index_resource.py +0 -0
  106. {deepset_mcp-0.0.10 → deepset_mcp-0.0.12}/test/integration/test_integration_integrations_resource.py +0 -0
  107. {deepset_mcp-0.0.10 → deepset_mcp-0.0.12}/test/integration/test_integration_pipeline_logs.py +0 -0
  108. {deepset_mcp-0.0.10 → deepset_mcp-0.0.12}/test/integration/test_integration_pipeline_resource.py +0 -0
  109. {deepset_mcp-0.0.10 → deepset_mcp-0.0.12}/test/integration/test_integration_pipeline_template_resource.py +0 -0
  110. {deepset_mcp-0.0.10 → deepset_mcp-0.0.12}/test/integration/test_integration_secret_resource.py +0 -0
  111. {deepset_mcp-0.0.10 → deepset_mcp-0.0.12}/test/integration/test_integration_workspace_resource.py +0 -0
  112. {deepset_mcp-0.0.10 → deepset_mcp-0.0.12}/test/integration/tokonomics/__init__.py +0 -0
  113. {deepset_mcp-0.0.10 → deepset_mcp-0.0.12}/test/integration/tokonomics/test_integration_tokonomics.py +0 -0
  114. {deepset_mcp-0.0.10 → deepset_mcp-0.0.12}/test/integration/tools/__init__.py +0 -0
  115. {deepset_mcp-0.0.10 → deepset_mcp-0.0.12}/test/integration/tools/test_integration_haystack_service.py +0 -0
  116. {deepset_mcp-0.0.10 → deepset_mcp-0.0.12}/test/unit/__init__.py +0 -0
  117. {deepset_mcp-0.0.10 → deepset_mcp-0.0.12}/test/unit/api/__init__.py +0 -0
  118. {deepset_mcp-0.0.10 → deepset_mcp-0.0.12}/test/unit/api/custom_components/__init__.py +0 -0
  119. {deepset_mcp-0.0.10 → deepset_mcp-0.0.12}/test/unit/api/custom_components/test_custom_components_resource.py +0 -0
  120. {deepset_mcp-0.0.10 → deepset_mcp-0.0.12}/test/unit/api/haystack_service/__init__.py +0 -0
  121. {deepset_mcp-0.0.10 → deepset_mcp-0.0.12}/test/unit/api/haystack_service/test_haystack_service_resource.py +0 -0
  122. {deepset_mcp-0.0.10 → deepset_mcp-0.0.12}/test/unit/api/indexes/__init__.py +0 -0
  123. {deepset_mcp-0.0.10 → deepset_mcp-0.0.12}/test/unit/api/indexes/test_index_resource.py +0 -0
  124. {deepset_mcp-0.0.10 → deepset_mcp-0.0.12}/test/unit/api/integrations/__init__.py +0 -0
  125. {deepset_mcp-0.0.10 → deepset_mcp-0.0.12}/test/unit/api/integrations/test_integration_resource.py +0 -0
  126. {deepset_mcp-0.0.10 → deepset_mcp-0.0.12}/test/unit/api/pipeline/__init__.py +0 -0
  127. {deepset_mcp-0.0.10 → deepset_mcp-0.0.12}/test/unit/api/pipeline/test_pipeline_resource.py +0 -0
  128. {deepset_mcp-0.0.10 → deepset_mcp-0.0.12}/test/unit/api/pipeline/test_pipeline_resource_search.py +0 -0
  129. {deepset_mcp-0.0.10 → deepset_mcp-0.0.12}/test/unit/api/pipeline_template/__init__.py +0 -0
  130. {deepset_mcp-0.0.10 → deepset_mcp-0.0.12}/test/unit/api/pipeline_template/test_pipeline_template_resource.py +0 -0
  131. {deepset_mcp-0.0.10 → deepset_mcp-0.0.12}/test/unit/api/secrets/test_secret_resource.py +0 -0
  132. {deepset_mcp-0.0.10 → deepset_mcp-0.0.12}/test/unit/api/test_shared_models.py +0 -0
  133. {deepset_mcp-0.0.10 → deepset_mcp-0.0.12}/test/unit/api/test_transport.py +0 -0
  134. {deepset_mcp-0.0.10 → deepset_mcp-0.0.12}/test/unit/api/user/__init__.py +0 -0
  135. {deepset_mcp-0.0.10 → deepset_mcp-0.0.12}/test/unit/api/user/test_user_resource.py +0 -0
  136. {deepset_mcp-0.0.10 → deepset_mcp-0.0.12}/test/unit/api/workspace/__init__.py +0 -0
  137. {deepset_mcp-0.0.10 → deepset_mcp-0.0.12}/test/unit/api/workspace/test_workspace_resource.py +0 -0
  138. {deepset_mcp-0.0.10 → deepset_mcp-0.0.12}/test/unit/conftest.py +0 -0
  139. {deepset_mcp-0.0.10 → deepset_mcp-0.0.12}/test/unit/test_async_deepset_client.py +0 -0
  140. {deepset_mcp-0.0.10 → deepset_mcp-0.0.12}/test/unit/test_server_base_url.py +0 -0
  141. {deepset_mcp-0.0.10 → deepset_mcp-0.0.12}/test/unit/test_store.py +0 -0
  142. {deepset_mcp-0.0.10 → deepset_mcp-0.0.12}/test/unit/test_tool_factory.py +0 -0
  143. {deepset_mcp-0.0.10 → deepset_mcp-0.0.12}/test/unit/tokonomics/__init__.py +0 -0
  144. {deepset_mcp-0.0.10 → deepset_mcp-0.0.12}/test/unit/tokonomics/test_decorators.py +0 -0
  145. {deepset_mcp-0.0.10 → deepset_mcp-0.0.12}/test/unit/tokonomics/test_explorer.py +0 -0
  146. {deepset_mcp-0.0.10 → deepset_mcp-0.0.12}/test/unit/tokonomics/test_integration.py +0 -0
  147. {deepset_mcp-0.0.10 → deepset_mcp-0.0.12}/test/unit/tokonomics/test_object_store.py +0 -0
  148. {deepset_mcp-0.0.10 → deepset_mcp-0.0.12}/test/unit/tokonomics/test_object_store_backends.py +0 -0
  149. {deepset_mcp-0.0.10 → deepset_mcp-0.0.12}/test/unit/tools/__init__.py +0 -0
  150. {deepset_mcp-0.0.10 → deepset_mcp-0.0.12}/test/unit/tools/test_custom_components.py +0 -0
  151. {deepset_mcp-0.0.10 → deepset_mcp-0.0.12}/test/unit/tools/test_doc_search.py +0 -0
  152. {deepset_mcp-0.0.10 → deepset_mcp-0.0.12}/test/unit/tools/test_haystack_service.py +0 -0
  153. {deepset_mcp-0.0.10 → deepset_mcp-0.0.12}/test/unit/tools/test_indexes.py +0 -0
  154. {deepset_mcp-0.0.10 → deepset_mcp-0.0.12}/test/unit/tools/test_pipeline.py +0 -0
  155. {deepset_mcp-0.0.10 → deepset_mcp-0.0.12}/test/unit/tools/test_pipeline_template.py +0 -0
  156. {deepset_mcp-0.0.10 → deepset_mcp-0.0.12}/test/unit/tools/test_secrets.py +0 -0
  157. {deepset_mcp-0.0.10 → deepset_mcp-0.0.12}/test/unit/tools/test_workspace.py +0 -0
  158. {deepset_mcp-0.0.10 → deepset_mcp-0.0.12}/uv.lock +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: deepset-mcp
3
- Version: 0.0.10
3
+ Version: 0.0.12
4
4
  Summary: Collection of MCP tools and Agents to work with the deepset AI platform. Create, debug or learn about pipelines on the platform. Useable from the CLI, Cursor, Claude Code, or other MCP clients.
5
5
  Project-URL: Homepage, https://deepset.ai
6
6
  Author-email: Mathis Lucka <mathis.lucka@deepset.ai>, Tanay Soni <tanay.soni@deepset.ai>
@@ -0,0 +1,26 @@
1
+ #!/bin/sh
2
+ # SPDX-FileCopyrightText: 2025-present deepset GmbH <info@deepset.ai>
3
+ #
4
+ # SPDX-License-Identifier: Apache-2.0
5
+
6
+ # entrypoint.sh
7
+
8
+ # 1) Change into the app dir
9
+ cd /app
10
+
11
+ # 2) Make sure we use the venv's Python
12
+ PYTHON_BIN=/app/.venv/bin/python
13
+
14
+ # 3) Point Python at the src/ directory so it can import deepset_mcp
15
+ export PYTHONPATH=/app/src
16
+
17
+ # 4) Exec your MCP server
18
+ # If no command-line arguments are provided, use environment variables as defaults
19
+ if [ $# -eq 0 ]; then
20
+ exec "$PYTHON_BIN" -m deepset_mcp.main \
21
+ --workspace "${DEEPSET_WORKSPACE}" \
22
+ --api-key "${DEEPSET_API_KEY}"
23
+ else
24
+ # Pass through all command-line arguments
25
+ exec "$PYTHON_BIN" -m deepset_mcp.main "$@"
26
+ fi
@@ -112,6 +112,20 @@ def main(
112
112
  "Can also be set via OBJECT_STORE_TTL environment variable.",
113
113
  ),
114
114
  ] = 600,
115
+ host: Annotated[
116
+ str,
117
+ typer.Option(
118
+ "--host",
119
+ help="Host address to bind the server to. Default: 0.0.0.0",
120
+ ),
121
+ ] = "0.0.0.0",
122
+ port: Annotated[
123
+ int | None,
124
+ typer.Option(
125
+ "--port",
126
+ help="Port number to bind the server to. If not specified, uses default port for the transport.",
127
+ ),
128
+ ] = None,
115
129
  ) -> None:
116
130
  """
117
131
  Run the Deepset MCP server.
@@ -130,6 +144,8 @@ def main(
130
144
  :param object_store_backend: Object store backend type ('memory' or 'redis')
131
145
  :param object_store_redis_url: Redis connection URL (required if backend='redis')
132
146
  :param object_store_ttl: TTL in seconds for stored objects
147
+ :param host: Host address to bind the server to
148
+ :param port: Port number to bind the server to
133
149
  """
134
150
  # Handle --list-tools flag early
135
151
  if list_tools:
@@ -187,6 +203,9 @@ def main(
187
203
  object_store_redis_url=redis_url,
188
204
  object_store_ttl=ttl,
189
205
  )
206
+ mcp.settings.host = host
207
+ if port is not None:
208
+ mcp.settings.port = port
190
209
 
191
210
  mcp.run(transport=transport.value)
192
211
 
@@ -37,6 +37,7 @@ from deepset_mcp.tools.pipeline import (
37
37
  get_pipeline_logs as get_pipeline_logs_tool,
38
38
  list_pipelines as list_pipelines_tool,
39
39
  search_pipeline as search_pipeline_tool,
40
+ search_pipeline_with_filters as search_pipeline_with_filters_tool,
40
41
  update_pipeline as update_pipeline_tool,
41
42
  validate_pipeline as validate_pipeline_tool,
42
43
  )
@@ -128,6 +129,10 @@ TOOL_REGISTRY: dict[str, tuple[Callable[..., Any], ToolConfig]] = {
128
129
  search_pipeline_tool,
129
130
  ToolConfig(needs_client=True, needs_workspace=True, memory_type=MemoryType.EXPLORABLE),
130
131
  ),
132
+ "search_pipeline_with_filters": (
133
+ search_pipeline_with_filters_tool,
134
+ ToolConfig(needs_client=True, needs_workspace=True, memory_type=MemoryType.EXPLORABLE),
135
+ ),
131
136
  "list_indexes": (
132
137
  list_indexes_tool,
133
138
  ToolConfig(needs_client=True, needs_workspace=True, memory_type=MemoryType.EXPLORABLE),
@@ -20,6 +20,7 @@ from .pipeline import (
20
20
  get_pipeline_logs,
21
21
  list_pipelines,
22
22
  search_pipeline,
23
+ search_pipeline_with_filters,
23
24
  update_pipeline,
24
25
  validate_pipeline,
25
26
  )
@@ -49,6 +50,7 @@ __all__ = [
49
50
  "get_pipeline_logs",
50
51
  "deploy_pipeline",
51
52
  "search_pipeline",
53
+ "search_pipeline_with_filters",
52
54
  "create_pipeline",
53
55
  "update_pipeline",
54
56
  "validate_pipeline",
@@ -3,6 +3,7 @@
3
3
  # SPDX-License-Identifier: Apache-2.0
4
4
 
5
5
  import asyncio
6
+ from typing import Any
6
7
 
7
8
  import yaml
8
9
  from pydantic import BaseModel
@@ -367,3 +368,52 @@ async def search_pipeline(
367
368
  return f"Failed to search using pipeline '{pipeline_name}': {e}"
368
369
  except Exception as e:
369
370
  return f"An unexpected error occurred while searching with pipeline '{pipeline_name}': {str(e)}"
371
+
372
+
373
+ async def search_pipeline_with_filters(
374
+ *,
375
+ client: AsyncClientProtocol,
376
+ workspace: str,
377
+ pipeline_name: str,
378
+ query: str,
379
+ filters: dict[str, Any] | None = None,
380
+ ) -> DeepsetSearchResponse | str:
381
+ """Searches using a pipeline with filters.
382
+
383
+ Uses the specified pipeline to perform a search with the given query and filters.
384
+ Filters follow the Haystack filter syntax: https://docs.haystack.deepset.ai/docs/metadata-filtering.
385
+ Before executing the search, checks if the pipeline is deployed (status = DEPLOYED).
386
+ Returns search results.
387
+
388
+ :param client: The async client for API communication.
389
+ :param workspace: The workspace name.
390
+ :param pipeline_name: Name of the pipeline to use for search.
391
+ :param query: The search query to execute.
392
+ :param filters: The filters to apply to the search.
393
+
394
+ :returns: Search results or error message.
395
+ """
396
+ try:
397
+ # First, check if the pipeline exists and get its status
398
+ pipeline = await client.pipelines(workspace=workspace).get(pipeline_name=pipeline_name)
399
+
400
+ # Check if pipeline is deployed
401
+ if pipeline.status != "DEPLOYED":
402
+ return (
403
+ f"Pipeline '{pipeline_name}' is not deployed (current status: {pipeline.status}). "
404
+ f"Please deploy the pipeline first using the deploy_pipeline tool before attempting to search."
405
+ )
406
+
407
+ # Execute the search
408
+ return await client.pipelines(workspace=workspace).search(
409
+ pipeline_name=pipeline_name, query=query, filters=filters if filters is not None else None
410
+ )
411
+
412
+ except ResourceNotFoundError:
413
+ return f"There is no pipeline named '{pipeline_name}' in workspace '{workspace}'."
414
+ except BadRequestError as e:
415
+ return f"Failed to search using pipeline '{pipeline_name}': {e}"
416
+ except UnexpectedAPIError as e:
417
+ return f"Failed to search using pipeline '{pipeline_name}': {e}"
418
+ except Exception as e:
419
+ return f"An unexpected error occurred while searching with pipeline '{pipeline_name}': {str(e)}"
@@ -1,20 +0,0 @@
1
- #!/bin/sh
2
- # SPDX-FileCopyrightText: 2025-present deepset GmbH <info@deepset.ai>
3
- #
4
- # SPDX-License-Identifier: Apache-2.0
5
-
6
- # entrypoint.sh
7
-
8
- # 1) Change into the app dir
9
- cd /app
10
-
11
- # 2) Make sure we use the venv’s Python
12
- PYTHON_BIN=/app/.venv/bin/python
13
-
14
- # 3) Point Python at the src/ directory so it can import deepset_mcp
15
- export PYTHONPATH=/app/src
16
-
17
- # 4) Exec your MCP server
18
- exec "$PYTHON_BIN" -m deepset_mcp.main \
19
- --workspace "${DEEPSET_WORKSPACE}" \
20
- --api-key "${DEEPSET_API_KEY}"
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