objectstore-mcp 2.3.3__tar.gz → 2.3.4__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.
- {objectstore_mcp-2.3.3/objectstore_mcp.egg-info → objectstore_mcp-2.3.4}/PKG-INFO +4 -4
- {objectstore_mcp-2.3.3 → objectstore_mcp-2.3.4}/README.md +1 -1
- {objectstore_mcp-2.3.3 → objectstore_mcp-2.3.4}/objectstore_mcp/__init__.py +1 -1
- {objectstore_mcp-2.3.3 → objectstore_mcp-2.3.4}/objectstore_mcp/api_client.py +1 -1
- objectstore_mcp-2.3.4/objectstore_mcp/connector_sources.py +117 -0
- {objectstore_mcp-2.3.3 → objectstore_mcp-2.3.4}/objectstore_mcp/mcp_server.py +1 -1
- {objectstore_mcp-2.3.3 → objectstore_mcp-2.3.4}/objectstore_mcp/ontology/certification.json +0 -3
- {objectstore_mcp-2.3.3 → objectstore_mcp-2.3.4}/objectstore_mcp/ontology/objectstore.ttl +1 -2
- {objectstore_mcp-2.3.3 → objectstore_mcp-2.3.4/objectstore_mcp.egg-info}/PKG-INFO +4 -4
- {objectstore_mcp-2.3.3 → objectstore_mcp-2.3.4}/objectstore_mcp.egg-info/SOURCES.txt +1 -2
- {objectstore_mcp-2.3.3 → objectstore_mcp-2.3.4}/objectstore_mcp.egg-info/entry_points.txt +0 -3
- {objectstore_mcp-2.3.3 → objectstore_mcp-2.3.4}/objectstore_mcp.egg-info/requires.txt +2 -2
- {objectstore_mcp-2.3.3 → objectstore_mcp-2.3.4}/pyproject.toml +3 -6
- objectstore_mcp-2.3.4/requirements.txt +2 -0
- {objectstore_mcp-2.3.3 → objectstore_mcp-2.3.4}/tests/test_kg_ingest.py +8 -8
- objectstore_mcp-2.3.3/objectstore_mcp/connectors/mcp_source_presets.json +0 -17
- objectstore_mcp-2.3.3/objectstore_mcp/connectors/tool_schema_fingerprints.json +0 -8
- objectstore_mcp-2.3.3/requirements.txt +0 -2
- {objectstore_mcp-2.3.3 → objectstore_mcp-2.3.4}/LICENSE +0 -0
- {objectstore_mcp-2.3.3 → objectstore_mcp-2.3.4}/MANIFEST.in +0 -0
- {objectstore_mcp-2.3.3 → objectstore_mcp-2.3.4}/objectstore_mcp/__main__.py +0 -0
- {objectstore_mcp-2.3.3 → objectstore_mcp-2.3.4}/objectstore_mcp/api/__init__.py +0 -0
- {objectstore_mcp-2.3.3 → objectstore_mcp-2.3.4}/objectstore_mcp/api/api_client_azure_blob.py +0 -0
- {objectstore_mcp-2.3.3 → objectstore_mcp-2.3.4}/objectstore_mcp/api/api_client_base.py +0 -0
- {objectstore_mcp-2.3.3 → objectstore_mcp-2.3.4}/objectstore_mcp/api/api_client_filesystem.py +0 -0
- {objectstore_mcp-2.3.3 → objectstore_mcp-2.3.4}/objectstore_mcp/api/api_client_gcs.py +0 -0
- {objectstore_mcp-2.3.3 → objectstore_mcp-2.3.4}/objectstore_mcp/api/api_client_s3.py +0 -0
- {objectstore_mcp-2.3.3 → objectstore_mcp-2.3.4}/objectstore_mcp/auth.py +0 -0
- {objectstore_mcp-2.3.3 → objectstore_mcp-2.3.4}/objectstore_mcp/config.py +0 -0
- {objectstore_mcp-2.3.3 → objectstore_mcp-2.3.4}/objectstore_mcp/connectors/__init__.py +0 -0
- {objectstore_mcp-2.3.3 → objectstore_mcp-2.3.4}/objectstore_mcp/kg_ingest.py +0 -0
- {objectstore_mcp-2.3.3 → objectstore_mcp-2.3.4}/objectstore_mcp/mcp/__init__.py +0 -0
- {objectstore_mcp-2.3.3 → objectstore_mcp-2.3.4}/objectstore_mcp/mcp/mcp_objectstore.py +0 -0
- {objectstore_mcp-2.3.3 → objectstore_mcp-2.3.4}/objectstore_mcp/mcp_config.json +0 -0
- {objectstore_mcp-2.3.3 → objectstore_mcp-2.3.4}/objectstore_mcp/objectstore_input_models.py +0 -0
- {objectstore_mcp-2.3.3 → objectstore_mcp-2.3.4}/objectstore_mcp/objectstore_response_models.py +0 -0
- {objectstore_mcp-2.3.3 → objectstore_mcp-2.3.4}/objectstore_mcp/ontology/__init__.py +0 -0
- {objectstore_mcp-2.3.3 → objectstore_mcp-2.3.4}/objectstore_mcp/ontology/fixtures/records.json +0 -0
- {objectstore_mcp-2.3.3 → objectstore_mcp-2.3.4}/objectstore_mcp/ontology/mappings/source.yaml +0 -0
- {objectstore_mcp-2.3.3 → objectstore_mcp-2.3.4}/objectstore_mcp/ontology/migrations/manifest.json +0 -0
- {objectstore_mcp-2.3.3 → objectstore_mcp-2.3.4}/objectstore_mcp/ontology/shapes/connector.shacl.ttl +0 -0
- {objectstore_mcp-2.3.3 → objectstore_mcp-2.3.4}/objectstore_mcp/prompts/__init__.py +0 -0
- {objectstore_mcp-2.3.3 → objectstore_mcp-2.3.4}/objectstore_mcp/skills/__init__.py +0 -0
- {objectstore_mcp-2.3.3 → objectstore_mcp-2.3.4}/objectstore_mcp/skills/objectstore-bucket-administration/SKILL.md +0 -0
- {objectstore_mcp-2.3.3 → objectstore_mcp-2.3.4}/objectstore_mcp/skills/objectstore-bucket-administration/WORKFLOW.md +0 -0
- {objectstore_mcp-2.3.3 → objectstore_mcp-2.3.4}/objectstore_mcp/skills/objectstore-data-transfer/SKILL.md +0 -0
- {objectstore_mcp-2.3.3 → objectstore_mcp-2.3.4}/objectstore_mcp/skills/objectstore-data-transfer/WORKFLOW.md +0 -0
- {objectstore_mcp-2.3.3 → objectstore_mcp-2.3.4}/objectstore_mcp/skills/objectstore-mcp-operations/SKILL.md +0 -0
- {objectstore_mcp-2.3.3 → objectstore_mcp-2.3.4}/objectstore_mcp/skills/objectstore-mcp-operations/agents/openai.yaml +0 -0
- {objectstore_mcp-2.3.3 → objectstore_mcp-2.3.4}/objectstore_mcp/skills/objectstore-mcp-operations/references/catalog.md +0 -0
- {objectstore_mcp-2.3.3 → objectstore_mcp-2.3.4}/objectstore_mcp/skills/objectstore-object-operations/SKILL.md +0 -0
- {objectstore_mcp-2.3.3 → objectstore_mcp-2.3.4}/objectstore_mcp/skills/objectstore-object-operations/WORKFLOW.md +0 -0
- {objectstore_mcp-2.3.3 → objectstore_mcp-2.3.4}/objectstore_mcp.egg-info/dependency_links.txt +0 -0
- {objectstore_mcp-2.3.3 → objectstore_mcp-2.3.4}/objectstore_mcp.egg-info/top_level.txt +0 -0
- {objectstore_mcp-2.3.3 → objectstore_mcp-2.3.4}/setup.cfg +0 -0
- {objectstore_mcp-2.3.3 → objectstore_mcp-2.3.4}/tests/test_api_wrapper.py +0 -0
- {objectstore_mcp-2.3.3 → objectstore_mcp-2.3.4}/tests/test_auth.py +0 -0
- {objectstore_mcp-2.3.3 → objectstore_mcp-2.3.4}/tests/test_azure_backend.py +0 -0
- {objectstore_mcp-2.3.3 → objectstore_mcp-2.3.4}/tests/test_backend_conformance.py +0 -0
- {objectstore_mcp-2.3.3 → objectstore_mcp-2.3.4}/tests/test_config.py +0 -0
- {objectstore_mcp-2.3.3 → objectstore_mcp-2.3.4}/tests/test_default_content_surfaces.py +0 -0
- {objectstore_mcp-2.3.3 → objectstore_mcp-2.3.4}/tests/test_gcs_backend.py +0 -0
- {objectstore_mcp-2.3.3 → objectstore_mcp-2.3.4}/tests/test_identity_context_scoping.py +0 -0
- {objectstore_mcp-2.3.3 → objectstore_mcp-2.3.4}/tests/test_init_dynamics.py +0 -0
- {objectstore_mcp-2.3.3 → objectstore_mcp-2.3.4}/tests/test_objectstore_mcp_validation.py +0 -0
- {objectstore_mcp-2.3.3 → objectstore_mcp-2.3.4}/tests/test_optional_dependencies.py +0 -0
- {objectstore_mcp-2.3.3 → objectstore_mcp-2.3.4}/tests/test_s3_backend.py +0 -0
- {objectstore_mcp-2.3.3 → objectstore_mcp-2.3.4}/tests/test_s3_moto.py +0 -0
- {objectstore_mcp-2.3.3 → objectstore_mcp-2.3.4}/tests/test_safety.py +0 -0
- {objectstore_mcp-2.3.3 → objectstore_mcp-2.3.4}/tests/test_startup.py +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: objectstore-mcp
|
|
3
|
-
Version: 2.3.
|
|
3
|
+
Version: 2.3.4
|
|
4
4
|
Summary: Object storage (S3/MinIO/R2, Google Cloud Storage, Azure Blob, local filesystem) API + MCP Server for Agentic AI!
|
|
5
5
|
Author-email: Project Maintainers <maintainers@users.noreply.github.com>
|
|
6
6
|
License: MIT
|
|
@@ -12,10 +12,10 @@ Classifier: Programming Language :: Python :: 3
|
|
|
12
12
|
Requires-Python: >=3.12
|
|
13
13
|
Description-Content-Type: text/markdown
|
|
14
14
|
License-File: LICENSE
|
|
15
|
-
Requires-Dist: agent-connector-sdk[mcp]<1.0.0,>=0.
|
|
15
|
+
Requires-Dist: agent-connector-sdk[mcp]<1.0.0,>=0.4.1
|
|
16
16
|
Requires-Dist: python-dotenv>=1.2.4
|
|
17
17
|
Provides-Extra: mcp
|
|
18
|
-
Requires-Dist: agent-connector-sdk[mcp]<1.0.0,>=0.
|
|
18
|
+
Requires-Dist: agent-connector-sdk[mcp]<1.0.0,>=0.4.1; extra == "mcp"
|
|
19
19
|
Provides-Extra: s3
|
|
20
20
|
Requires-Dist: boto3>=1.43.114; extra == "s3"
|
|
21
21
|
Provides-Extra: gcs
|
|
@@ -43,7 +43,7 @@ The object-storage connector for the agent-connector-sdk fleet: **one MCP tool
|
|
|
43
43
|
surface over S3 and S3-compatible stores (MinIO, Cloudflare R2), Google Cloud
|
|
44
44
|
Storage, Azure Blob Storage, and a zero-infra local-filesystem backend**.
|
|
45
45
|
|
|
46
|
-
*Version: 2.3.
|
|
46
|
+
*Version: 2.3.4*
|
|
47
47
|
|
|
48
48
|
> **Documentation** — Installation, deployment, and usage across the API, CLI, and
|
|
49
49
|
> MCP interfaces are maintained in [`docs/`](docs/index.md).
|
|
@@ -9,7 +9,7 @@ The object-storage connector for the agent-connector-sdk fleet: **one MCP tool
|
|
|
9
9
|
surface over S3 and S3-compatible stores (MinIO, Cloudflare R2), Google Cloud
|
|
10
10
|
Storage, Azure Blob Storage, and a zero-infra local-filesystem backend**.
|
|
11
11
|
|
|
12
|
-
*Version: 2.3.
|
|
12
|
+
*Version: 2.3.4*
|
|
13
13
|
|
|
14
14
|
> **Documentation** — Installation, deployment, and usage across the API, CLI, and
|
|
15
15
|
> MCP interfaces are maintained in [`docs/`](docs/index.md).
|
|
@@ -0,0 +1,117 @@
|
|
|
1
|
+
"""Data sources of this connector, declared by tool name (generated by connector-ontology-map migrate).
|
|
2
|
+
|
|
3
|
+
Served live as ``connector://resources``. Regenerate by editing the declarations, not the tools.
|
|
4
|
+
"""
|
|
5
|
+
|
|
6
|
+
# ruff: noqa: E501
|
|
7
|
+
from __future__ import annotations
|
|
8
|
+
|
|
9
|
+
from typing import Any
|
|
10
|
+
|
|
11
|
+
from agent_connector_sdk.ingest.live_declaration import source_meta
|
|
12
|
+
from agent_connector_sdk.ingest.sources import IngestSourceDeclaration, IngestSourceSpec
|
|
13
|
+
|
|
14
|
+
CONNECTOR: str = "objectstore-mcp"
|
|
15
|
+
|
|
16
|
+
SOURCES: tuple[Any, ...] = (
|
|
17
|
+
source_meta(
|
|
18
|
+
tool="objectstore_list_objects",
|
|
19
|
+
source_id="objectstore-objects",
|
|
20
|
+
record_type="Object",
|
|
21
|
+
id_field="key",
|
|
22
|
+
cursor_field="last_modified",
|
|
23
|
+
preset={
|
|
24
|
+
"doc_type": "objectstore_object",
|
|
25
|
+
"params": {
|
|
26
|
+
"action": "list",
|
|
27
|
+
},
|
|
28
|
+
},
|
|
29
|
+
records_path="objects",
|
|
30
|
+
server="objectstore-mcp",
|
|
31
|
+
text_field="content_type",
|
|
32
|
+
title_field="key",
|
|
33
|
+
),
|
|
34
|
+
)
|
|
35
|
+
|
|
36
|
+
SCHEMA_MAPPINGS: dict[str, Any] = {
|
|
37
|
+
"Bucket": {
|
|
38
|
+
"fields": {
|
|
39
|
+
"backendType": "xsd:string",
|
|
40
|
+
"byteSize": "xsd:integer",
|
|
41
|
+
"contentType": "xsd:string",
|
|
42
|
+
"endpoint": "xsd:string",
|
|
43
|
+
"etag": "xsd:string",
|
|
44
|
+
"lastModified": "xsd:string",
|
|
45
|
+
"location": "xsd:string",
|
|
46
|
+
"objectKey": "xsd:string",
|
|
47
|
+
"storageClass": "xsd:string",
|
|
48
|
+
},
|
|
49
|
+
"ontology_class": None,
|
|
50
|
+
},
|
|
51
|
+
"Object": {
|
|
52
|
+
"fields": {
|
|
53
|
+
"backendType": "xsd:string",
|
|
54
|
+
"byteSize": "xsd:integer",
|
|
55
|
+
"contentType": "xsd:string",
|
|
56
|
+
"endpoint": "xsd:string",
|
|
57
|
+
"etag": "xsd:string",
|
|
58
|
+
"lastModified": "xsd:string",
|
|
59
|
+
"location": "xsd:string",
|
|
60
|
+
"objectKey": "xsd:string",
|
|
61
|
+
"storageClass": "xsd:string",
|
|
62
|
+
},
|
|
63
|
+
"ontology_class": None,
|
|
64
|
+
},
|
|
65
|
+
"ObjectStore": {
|
|
66
|
+
"fields": {
|
|
67
|
+
"backendType": "xsd:string",
|
|
68
|
+
"byteSize": "xsd:integer",
|
|
69
|
+
"contentType": "xsd:string",
|
|
70
|
+
"endpoint": "xsd:string",
|
|
71
|
+
"etag": "xsd:string",
|
|
72
|
+
"lastModified": "xsd:string",
|
|
73
|
+
"location": "xsd:string",
|
|
74
|
+
"objectKey": "xsd:string",
|
|
75
|
+
"storageClass": "xsd:string",
|
|
76
|
+
},
|
|
77
|
+
"ontology_class": None,
|
|
78
|
+
},
|
|
79
|
+
}
|
|
80
|
+
|
|
81
|
+
RESOURCES: tuple[dict[str, str], ...] = (
|
|
82
|
+
{
|
|
83
|
+
"id_prefix": "bucket",
|
|
84
|
+
"label": "Bucket",
|
|
85
|
+
"name": "Bucket",
|
|
86
|
+
},
|
|
87
|
+
{
|
|
88
|
+
"id_prefix": "object",
|
|
89
|
+
"label": "Object",
|
|
90
|
+
"name": "Object",
|
|
91
|
+
},
|
|
92
|
+
{
|
|
93
|
+
"id_prefix": "objectstore",
|
|
94
|
+
"label": "Object Store",
|
|
95
|
+
"name": "ObjectStore",
|
|
96
|
+
},
|
|
97
|
+
)
|
|
98
|
+
|
|
99
|
+
|
|
100
|
+
def declaration() -> IngestSourceDeclaration:
|
|
101
|
+
"""The declaration the server assembles from this module."""
|
|
102
|
+
specs: list[IngestSourceSpec] = []
|
|
103
|
+
for item in SOURCES:
|
|
104
|
+
for entry in item["connector_sources"]:
|
|
105
|
+
body: dict[str, Any] = {
|
|
106
|
+
k: v for k, v in entry.items() if k not in ("tool", "mapping")
|
|
107
|
+
}
|
|
108
|
+
spec = {**body, "tools": (entry["tool"],)}
|
|
109
|
+
specs.append(IngestSourceSpec.model_validate(spec))
|
|
110
|
+
return IngestSourceDeclaration.model_validate(
|
|
111
|
+
{
|
|
112
|
+
"connector": CONNECTOR,
|
|
113
|
+
"sources": specs,
|
|
114
|
+
"schema_mappings": SCHEMA_MAPPINGS,
|
|
115
|
+
"resources": RESOURCES,
|
|
116
|
+
}
|
|
117
|
+
)
|
|
@@ -14,7 +14,7 @@ from objectstore_mcp.api import ObjectStoreBackend
|
|
|
14
14
|
from objectstore_mcp.auth import get_client
|
|
15
15
|
from objectstore_mcp.mcp.mcp_objectstore import register_objectstore_tools # noqa: F401
|
|
16
16
|
|
|
17
|
-
__version__ = "2.3.
|
|
17
|
+
__version__ = "2.3.4"
|
|
18
18
|
|
|
19
19
|
logger = get_logger(name="objectstore_mcp")
|
|
20
20
|
|
|
@@ -1,9 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"api_version": "arbora.io/v1",
|
|
3
3
|
"artifacts": {
|
|
4
|
-
"connector_manifest.yml": "21fb15da72aaba6a8e6185d1e69b6d6d4be4e5c4d3601831cf0cd5806b35c990",
|
|
5
|
-
"objectstore_mcp/connectors/mcp_source_presets.json": "a5d7d72e0755cada67620f12e51a35f5804ea441c0b59345e2c8e62ea2fd2629",
|
|
6
|
-
"objectstore_mcp/connectors/tool_schema_fingerprints.json": "8170c11d157b2222c1fe170a3d9b604cfc2bbe38f6282e5b794df6ca4f2e246e",
|
|
7
4
|
"objectstore_mcp/ontology/fixtures/records.json": "69317390a26787a4f4ad96fc0113346ddacd85ec74b80b307ae903fc985badb1",
|
|
8
5
|
"objectstore_mcp/ontology/mappings/source.yaml": "5ad0b30b461534c509ba23a18b8e5a5b49de22891d6bd9e30df7b6d46c0e26cf",
|
|
9
6
|
"objectstore_mcp/ontology/migrations/manifest.json": "2a2f97d2d28fcf0de059d5dafd9f1edf161d38517b7fccb6ed73b6dd80656067",
|
|
@@ -115,5 +115,4 @@
|
|
|
115
115
|
objects they hold with their size/etag/content-type/storage-class metadata — across
|
|
116
116
|
S3/MinIO/R2, Google Cloud Storage, Azure Blob, and a local filesystem backend,
|
|
117
117
|
federated into the agent-connector-sdk knowledge-graph hub. Captures object METADATA
|
|
118
|
-
only; object bytes stay in the backing store (or a separately-linked :Blob)."""
|
|
119
|
-
owl:imports <http://knuckles.team/kg> .
|
|
118
|
+
only; object bytes stay in the backing store (or a separately-linked :Blob).""" .
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: objectstore-mcp
|
|
3
|
-
Version: 2.3.
|
|
3
|
+
Version: 2.3.4
|
|
4
4
|
Summary: Object storage (S3/MinIO/R2, Google Cloud Storage, Azure Blob, local filesystem) API + MCP Server for Agentic AI!
|
|
5
5
|
Author-email: Project Maintainers <maintainers@users.noreply.github.com>
|
|
6
6
|
License: MIT
|
|
@@ -12,10 +12,10 @@ Classifier: Programming Language :: Python :: 3
|
|
|
12
12
|
Requires-Python: >=3.12
|
|
13
13
|
Description-Content-Type: text/markdown
|
|
14
14
|
License-File: LICENSE
|
|
15
|
-
Requires-Dist: agent-connector-sdk[mcp]<1.0.0,>=0.
|
|
15
|
+
Requires-Dist: agent-connector-sdk[mcp]<1.0.0,>=0.4.1
|
|
16
16
|
Requires-Dist: python-dotenv>=1.2.4
|
|
17
17
|
Provides-Extra: mcp
|
|
18
|
-
Requires-Dist: agent-connector-sdk[mcp]<1.0.0,>=0.
|
|
18
|
+
Requires-Dist: agent-connector-sdk[mcp]<1.0.0,>=0.4.1; extra == "mcp"
|
|
19
19
|
Provides-Extra: s3
|
|
20
20
|
Requires-Dist: boto3>=1.43.114; extra == "s3"
|
|
21
21
|
Provides-Extra: gcs
|
|
@@ -43,7 +43,7 @@ The object-storage connector for the agent-connector-sdk fleet: **one MCP tool
|
|
|
43
43
|
surface over S3 and S3-compatible stores (MinIO, Cloudflare R2), Google Cloud
|
|
44
44
|
Storage, Azure Blob Storage, and a zero-infra local-filesystem backend**.
|
|
45
45
|
|
|
46
|
-
*Version: 2.3.
|
|
46
|
+
*Version: 2.3.4*
|
|
47
47
|
|
|
48
48
|
> **Documentation** — Installation, deployment, and usage across the API, CLI, and
|
|
49
49
|
> MCP interfaces are maintained in [`docs/`](docs/index.md).
|
|
@@ -8,6 +8,7 @@ objectstore_mcp/__main__.py
|
|
|
8
8
|
objectstore_mcp/api_client.py
|
|
9
9
|
objectstore_mcp/auth.py
|
|
10
10
|
objectstore_mcp/config.py
|
|
11
|
+
objectstore_mcp/connector_sources.py
|
|
11
12
|
objectstore_mcp/kg_ingest.py
|
|
12
13
|
objectstore_mcp/mcp_config.json
|
|
13
14
|
objectstore_mcp/mcp_server.py
|
|
@@ -26,8 +27,6 @@ objectstore_mcp/api/api_client_filesystem.py
|
|
|
26
27
|
objectstore_mcp/api/api_client_gcs.py
|
|
27
28
|
objectstore_mcp/api/api_client_s3.py
|
|
28
29
|
objectstore_mcp/connectors/__init__.py
|
|
29
|
-
objectstore_mcp/connectors/mcp_source_presets.json
|
|
30
|
-
objectstore_mcp/connectors/tool_schema_fingerprints.json
|
|
31
30
|
objectstore_mcp/mcp/__init__.py
|
|
32
31
|
objectstore_mcp/mcp/mcp_objectstore.py
|
|
33
32
|
objectstore_mcp/ontology/__init__.py
|
|
@@ -7,8 +7,5 @@ objectstore-mcp = objectstore_mcp.ontology
|
|
|
7
7
|
[agent_connector_sdk.skill_providers]
|
|
8
8
|
objectstore-mcp = objectstore_mcp.skills
|
|
9
9
|
|
|
10
|
-
[agent_connector_sdk.source_connector_providers]
|
|
11
|
-
objectstore-mcp = objectstore_mcp.connectors
|
|
12
|
-
|
|
13
10
|
[console_scripts]
|
|
14
11
|
objectstore-mcp = objectstore_mcp.mcp_server:mcp_server
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
agent-connector-sdk[mcp]<1.0.0,>=0.
|
|
1
|
+
agent-connector-sdk[mcp]<1.0.0,>=0.4.1
|
|
2
2
|
python-dotenv>=1.2.4
|
|
3
3
|
|
|
4
4
|
[all]
|
|
@@ -11,7 +11,7 @@ azure-storage-blob>=12.31.0
|
|
|
11
11
|
google-cloud-storage>=3.17.1
|
|
12
12
|
|
|
13
13
|
[mcp]
|
|
14
|
-
agent-connector-sdk[mcp]<1.0.0,>=0.
|
|
14
|
+
agent-connector-sdk[mcp]<1.0.0,>=0.4.1
|
|
15
15
|
|
|
16
16
|
[s3]
|
|
17
17
|
boto3>=1.43.114
|
|
@@ -4,12 +4,12 @@ build-backend = "setuptools.build_meta"
|
|
|
4
4
|
|
|
5
5
|
[project]
|
|
6
6
|
name = "objectstore-mcp"
|
|
7
|
-
version = "2.3.
|
|
7
|
+
version = "2.3.4"
|
|
8
8
|
description = "Object storage (S3/MinIO/R2, Google Cloud Storage, Azure Blob, local filesystem) API + MCP Server for Agentic AI!"
|
|
9
9
|
readme = "README.md"
|
|
10
10
|
classifiers = [ "Development Status :: 4 - Beta", "License :: OSI Approved :: MIT License", "Environment :: Console", "Operating System :: POSIX :: Linux", "Programming Language :: Python :: 3",]
|
|
11
11
|
requires-python = ">=3.12"
|
|
12
|
-
dependencies = [ "agent-connector-sdk[mcp]>=0.
|
|
12
|
+
dependencies = [ "agent-connector-sdk[mcp]>=0.4.1,<1.0.0", "python-dotenv>=1.2.4",]
|
|
13
13
|
[[project.authors]]
|
|
14
14
|
name = "Project Maintainers"
|
|
15
15
|
email = "maintainers@users.noreply.github.com"
|
|
@@ -18,7 +18,7 @@ email = "maintainers@users.noreply.github.com"
|
|
|
18
18
|
text = "MIT"
|
|
19
19
|
|
|
20
20
|
[project.optional-dependencies]
|
|
21
|
-
mcp = [ "agent-connector-sdk[mcp]>=0.
|
|
21
|
+
mcp = [ "agent-connector-sdk[mcp]>=0.4.1,<1.0.0",]
|
|
22
22
|
s3 = [
|
|
23
23
|
# CONCEPT:PHASE2-RECONCILE — relaxed off the modernize-bump's 1.43.52
|
|
24
24
|
# floor: lighteval (pulled in via data-science-mcp[eval]) transitively
|
|
@@ -40,9 +40,6 @@ objectstore-mcp = "objectstore_mcp.skills"
|
|
|
40
40
|
[project.entry-points."agent_connector_sdk.ontology_providers"]
|
|
41
41
|
objectstore-mcp = "objectstore_mcp.ontology"
|
|
42
42
|
|
|
43
|
-
[project.entry-points."agent_connector_sdk.source_connector_providers"]
|
|
44
|
-
objectstore-mcp = "objectstore_mcp.connectors"
|
|
45
|
-
|
|
46
43
|
# The one declared connector identity: the fleet name (SDK-CONNECTOR-CONTROL-R071).
|
|
47
44
|
[project.entry-points."agent_connector_sdk.connector"]
|
|
48
45
|
objectstore-mcp = "objectstore_mcp"
|
|
@@ -61,12 +61,12 @@ async def test_ingest_entities_writes_nodes_and_edges(ingest):
|
|
|
61
61
|
request = transport.requests[0]
|
|
62
62
|
assert {r.record_id for r in request.records} == {"a", "s"}
|
|
63
63
|
bucket_record = next(r for r in request.records if r.record_id == "a")
|
|
64
|
-
assert bucket_record.mapping_reference.endswith("
|
|
64
|
+
assert bucket_record.mapping_reference.endswith("mappings/Bucket")
|
|
65
65
|
assert bucket_record.payload["name"] == "b"
|
|
66
66
|
rel = request.relationships[0]
|
|
67
67
|
assert rel.source.record_id == "a"
|
|
68
68
|
assert rel.target.record_id == "s"
|
|
69
|
-
assert rel.relation_reference.endswith("/
|
|
69
|
+
assert rel.relation_reference.endswith("/inStore")
|
|
70
70
|
|
|
71
71
|
|
|
72
72
|
@pytest.mark.asyncio
|
|
@@ -87,10 +87,10 @@ async def test_ingest_buckets_maps_bucket_and_store(ingest):
|
|
|
87
87
|
request = transport.requests[0]
|
|
88
88
|
records = {r.record_id: r for r in request.records}
|
|
89
89
|
store_record = records["objectstore:store:minio"]
|
|
90
|
-
assert store_record.mapping_reference.endswith("
|
|
90
|
+
assert store_record.mapping_reference.endswith("mappings/ObjectStore")
|
|
91
91
|
assert store_record.payload["backendType"] == "s3"
|
|
92
92
|
bucket_record = records["objectstore:bucket:minio/media-prod"]
|
|
93
|
-
assert bucket_record.mapping_reference.endswith("
|
|
93
|
+
assert bucket_record.mapping_reference.endswith("mappings/Bucket")
|
|
94
94
|
assert bucket_record.payload["location"] == "us"
|
|
95
95
|
assert bucket_record.payload["externalToolId"] == "minio/media-prod"
|
|
96
96
|
assert (
|
|
@@ -98,7 +98,7 @@ async def test_ingest_buckets_maps_bucket_and_store(ingest):
|
|
|
98
98
|
"objectstore:store:minio",
|
|
99
99
|
) in {(r.source.record_id, r.target.record_id) for r in request.relationships}
|
|
100
100
|
assert all(
|
|
101
|
-
r.relation_reference.endswith("/
|
|
101
|
+
r.relation_reference.endswith("/inStore")
|
|
102
102
|
for r in request.relationships
|
|
103
103
|
)
|
|
104
104
|
|
|
@@ -126,19 +126,19 @@ async def test_ingest_objects_maps_object_and_bucket(ingest):
|
|
|
126
126
|
request = transport.requests[0]
|
|
127
127
|
records = {r.record_id: r for r in request.records}
|
|
128
128
|
obj = records["objectstore:object:local/scratch/logs/app.log"]
|
|
129
|
-
assert obj.mapping_reference.endswith("
|
|
129
|
+
assert obj.mapping_reference.endswith("mappings/Object")
|
|
130
130
|
assert obj.payload["objectKey"] == "logs/app.log"
|
|
131
131
|
assert obj.payload["byteSize"] == 1234
|
|
132
132
|
assert obj.payload["contentType"] == "text/plain"
|
|
133
133
|
assert obj.payload["storageClass"] == "STANDARD"
|
|
134
134
|
assert records["objectstore:bucket:local/scratch"].mapping_reference.endswith(
|
|
135
|
-
"
|
|
135
|
+
"mappings/Bucket"
|
|
136
136
|
)
|
|
137
137
|
assert len(request.relationships) == 1
|
|
138
138
|
rel = request.relationships[0]
|
|
139
139
|
assert rel.source.record_id == "objectstore:object:local/scratch/logs/app.log"
|
|
140
140
|
assert rel.target.record_id == "objectstore:bucket:local/scratch"
|
|
141
|
-
assert rel.relation_reference.endswith("/
|
|
141
|
+
assert rel.relation_reference.endswith("/inBucket")
|
|
142
142
|
|
|
143
143
|
|
|
144
144
|
@pytest.mark.asyncio
|
|
@@ -1,17 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"_comment": "Tier-1 mcp_tool source preset(s) for objectstore-mcp (AU-KG.ingest.mcp-tool-connector). The action-routed 'objects' tool lists objects under a bucket/prefix; each record is an object metadata envelope (key/size/etag/content_type/last_modified). Contributed presets win over the central MCP_TOOL_PRESETS. For richer typed :Bucket/:Object ingestion prefer the native 'objectstore_ingest' tool + objectstore_mcp.kg_ingest.",
|
|
3
|
-
"objectstore-objects": {
|
|
4
|
-
"server": "objectstore-mcp",
|
|
5
|
-
"tool": "objects",
|
|
6
|
-
"action": "list",
|
|
7
|
-
"params": {
|
|
8
|
-
"action": "list"
|
|
9
|
-
},
|
|
10
|
-
"records_path": "objects",
|
|
11
|
-
"id_field": "key",
|
|
12
|
-
"title_field": "key",
|
|
13
|
-
"text_field": "content_type",
|
|
14
|
-
"updated_field": "last_modified",
|
|
15
|
-
"doc_type": "objectstore_object"
|
|
16
|
-
}
|
|
17
|
-
}
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{objectstore_mcp-2.3.3 → objectstore_mcp-2.3.4}/objectstore_mcp/api/api_client_azure_blob.py
RENAMED
|
File without changes
|
|
File without changes
|
{objectstore_mcp-2.3.3 → objectstore_mcp-2.3.4}/objectstore_mcp/api/api_client_filesystem.py
RENAMED
|
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
|
{objectstore_mcp-2.3.3 → objectstore_mcp-2.3.4}/objectstore_mcp/objectstore_response_models.py
RENAMED
|
File without changes
|
|
File without changes
|
{objectstore_mcp-2.3.3 → objectstore_mcp-2.3.4}/objectstore_mcp/ontology/fixtures/records.json
RENAMED
|
File without changes
|
{objectstore_mcp-2.3.3 → objectstore_mcp-2.3.4}/objectstore_mcp/ontology/mappings/source.yaml
RENAMED
|
File without changes
|
{objectstore_mcp-2.3.3 → objectstore_mcp-2.3.4}/objectstore_mcp/ontology/migrations/manifest.json
RENAMED
|
File without changes
|
{objectstore_mcp-2.3.3 → objectstore_mcp-2.3.4}/objectstore_mcp/ontology/shapes/connector.shacl.ttl
RENAMED
|
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
|
{objectstore_mcp-2.3.3 → objectstore_mcp-2.3.4}/objectstore_mcp.egg-info/dependency_links.txt
RENAMED
|
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
|