python-alfresco-mcp-server 1.1.0__py3-none-any.whl
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.
- alfresco_mcp_server/__init__.py +27 -0
- alfresco_mcp_server/config.py +104 -0
- alfresco_mcp_server/fastmcp_server.py +259 -0
- alfresco_mcp_server/prompts/__init__.py +7 -0
- alfresco_mcp_server/prompts/search_and_analyze.py +67 -0
- alfresco_mcp_server/resources/__init__.py +7 -0
- alfresco_mcp_server/resources/repository_resources.py +205 -0
- alfresco_mcp_server/tools/__init__.py +13 -0
- alfresco_mcp_server/tools/core/__init__.py +27 -0
- alfresco_mcp_server/tools/core/browse_repository.py +164 -0
- alfresco_mcp_server/tools/core/cancel_checkout.py +160 -0
- alfresco_mcp_server/tools/core/checkin_document.py +264 -0
- alfresco_mcp_server/tools/core/checkout_document.py +258 -0
- alfresco_mcp_server/tools/core/create_folder.py +105 -0
- alfresco_mcp_server/tools/core/delete_node.py +88 -0
- alfresco_mcp_server/tools/core/download_document.py +214 -0
- alfresco_mcp_server/tools/core/get_node_properties.py +195 -0
- alfresco_mcp_server/tools/core/update_node_properties.py +138 -0
- alfresco_mcp_server/tools/core/upload_document.py +244 -0
- alfresco_mcp_server/tools/search/__init__.py +15 -0
- alfresco_mcp_server/tools/search/advanced_search.py +204 -0
- alfresco_mcp_server/tools/search/cmis_search.py +180 -0
- alfresco_mcp_server/tools/search/search_by_metadata.py +183 -0
- alfresco_mcp_server/tools/search/search_content.py +186 -0
- alfresco_mcp_server/utils/__init__.py +34 -0
- alfresco_mcp_server/utils/connection.py +114 -0
- alfresco_mcp_server/utils/file_type_analysis.py +163 -0
- alfresco_mcp_server/utils/json_utils.py +135 -0
- python_alfresco_mcp_server-1.1.0.dist-info/METADATA +631 -0
- python_alfresco_mcp_server-1.1.0.dist-info/RECORD +34 -0
- python_alfresco_mcp_server-1.1.0.dist-info/WHEEL +5 -0
- python_alfresco_mcp_server-1.1.0.dist-info/entry_points.txt +2 -0
- python_alfresco_mcp_server-1.1.0.dist-info/licenses/LICENSE +201 -0
- python_alfresco_mcp_server-1.1.0.dist-info/top_level.txt +1 -0
|
@@ -0,0 +1,631 @@
|
|
|
1
|
+
Metadata-Version: 2.4
|
|
2
|
+
Name: python-alfresco-mcp-server
|
|
3
|
+
Version: 1.1.0
|
|
4
|
+
Summary: FastMCP 2.0 server for Alfresco Content Services integration
|
|
5
|
+
Author-email: Steve Reiner <example@example.com>
|
|
6
|
+
License: Apache-2.0
|
|
7
|
+
Project-URL: Homepage, https://github.com/stevereiner/python-alfresco-mcp-server
|
|
8
|
+
Project-URL: Repository, https://github.com/stevereiner/python-alfresco-mcp-server
|
|
9
|
+
Project-URL: Issues, https://github.com/stevereiner/python-alfresco-mcp-server/issues
|
|
10
|
+
Project-URL: Documentation, https://github.com/stevereiner/python-alfresco-mcp-server#readme
|
|
11
|
+
Keywords: alfresco,mcp,content-management,fastmcp,ai
|
|
12
|
+
Classifier: Development Status :: 4 - Beta
|
|
13
|
+
Classifier: Intended Audience :: Developers
|
|
14
|
+
Classifier: License :: OSI Approved :: Apache Software License
|
|
15
|
+
Classifier: Programming Language :: Python :: 3
|
|
16
|
+
Classifier: Programming Language :: Python :: 3.10
|
|
17
|
+
Classifier: Programming Language :: Python :: 3.11
|
|
18
|
+
Classifier: Programming Language :: Python :: 3.12
|
|
19
|
+
Classifier: Programming Language :: Python :: 3.13
|
|
20
|
+
Classifier: Topic :: Software Development :: Libraries :: Python Modules
|
|
21
|
+
Classifier: Topic :: Internet :: WWW/HTTP :: Dynamic Content :: Content Management System
|
|
22
|
+
Classifier: Topic :: Internet :: WWW/HTTP :: Indexing/Search
|
|
23
|
+
Classifier: Topic :: Database :: Database Engines/Servers
|
|
24
|
+
Classifier: Topic :: Scientific/Engineering :: Artificial Intelligence
|
|
25
|
+
Requires-Python: >=3.10
|
|
26
|
+
Description-Content-Type: text/markdown
|
|
27
|
+
License-File: LICENSE
|
|
28
|
+
Requires-Dist: fastmcp>=2.9.0
|
|
29
|
+
Requires-Dist: python-alfresco-api>=1.1.1
|
|
30
|
+
Requires-Dist: pydantic>=2.0.0
|
|
31
|
+
Requires-Dist: pydantic-settings>=2.0.0
|
|
32
|
+
Requires-Dist: PyYAML>=6.0
|
|
33
|
+
Requires-Dist: httpx>=0.24.0
|
|
34
|
+
Requires-Dist: python-multipart>=0.0.6
|
|
35
|
+
Provides-Extra: dev
|
|
36
|
+
Requires-Dist: black>=23.0.0; extra == "dev"
|
|
37
|
+
Requires-Dist: ruff>=0.1.0; extra == "dev"
|
|
38
|
+
Requires-Dist: mypy>=1.0.0; extra == "dev"
|
|
39
|
+
Provides-Extra: test
|
|
40
|
+
Requires-Dist: pytest>=7.0.0; extra == "test"
|
|
41
|
+
Requires-Dist: pytest-asyncio>=0.21.0; extra == "test"
|
|
42
|
+
Requires-Dist: pytest-cov>=4.0.0; extra == "test"
|
|
43
|
+
Requires-Dist: pytest-xdist>=3.0.0; extra == "test"
|
|
44
|
+
Requires-Dist: pytest-mock>=3.10.0; extra == "test"
|
|
45
|
+
Requires-Dist: coverage[toml]>=7.0.0; extra == "test"
|
|
46
|
+
Requires-Dist: httpx>=0.24.0; extra == "test"
|
|
47
|
+
Provides-Extra: all
|
|
48
|
+
Requires-Dist: python-alfresco-mcp-server[dev]; extra == "all"
|
|
49
|
+
Requires-Dist: python-alfresco-mcp-server[test]; extra == "all"
|
|
50
|
+
Dynamic: license-file
|
|
51
|
+
|
|
52
|
+
# Python Alfresco MCP Server v1.1 ๐
|
|
53
|
+
|
|
54
|
+
**Model Context Protocol Server for Alfresco Content Services**
|
|
55
|
+
|
|
56
|
+
A full featured MCP server for Alfresco in search and content management areas. It provides the following tools: full text search (content and properties), advanced search, metadata search, CMIS SQL like search, upload, download,
|
|
57
|
+
checkin, checkout, cancel checkout, create folder, folder browse, delete node, and get/set properties. Also has a tool for getting repository status/config (also a resource). Has one prompt example.
|
|
58
|
+
Built with [FastMCP 2.0](https://github.com/paulinephelan/FastMCP).
|
|
59
|
+
Features complete documentation, examples, and
|
|
60
|
+
config for various MCP clients (Claude Desktop, MCP Inspector, references to configuring others).
|
|
61
|
+
|
|
62
|
+
## ๐ What's New in v1.1
|
|
63
|
+
|
|
64
|
+
### **Modular Architecture & Enhanced Testing**
|
|
65
|
+
- **FastMCP**: v1.0 had FastMCP 2.0 implementation that had all tools implementations in the fastmcp_server.py file
|
|
66
|
+
- **Code Modularization in v1.1**: Split monolithic single file into organized modular structure with separate files
|
|
67
|
+
- **Directory Organization**: Organized into `tools/search/`, `tools/core/`, `resources/`, `prompts/`, `utils/` directories
|
|
68
|
+
- **Enhanced Testing**: Complete test suite transformation - 143 tests with 100% pass rate
|
|
69
|
+
- **Client Configuration Files**: Added dedicated Claude Desktop and MCP Inspector configuration files
|
|
70
|
+
- **Live Integration Testing**: 21 Alfresco server validation tests for real-world functionality
|
|
71
|
+
- **Python-Alfresco-API**: python-alfresco-mcp-server v1.1 requires the v1.1.1 python-alfresco-api package
|
|
72
|
+
|
|
73
|
+
## ๐ Complete Documentation
|
|
74
|
+
|
|
75
|
+
### **Documentation & Examples**
|
|
76
|
+
- **๐ Complete Documentation**: 9 guides covering setup to deployment
|
|
77
|
+
- **๐ก Examples**: 6 practical examples from quick start to implementation patterns
|
|
78
|
+
- **๐ง Configuration Management**: Environment variables, .env files, and command-line configuration
|
|
79
|
+
- **๐๏ธ Setup instruction for use with MCP client
|
|
80
|
+
|
|
81
|
+
### **Learning Resources**
|
|
82
|
+
- **๐ [Quick Start Guide](./docs/quick_start_guide.md)**: 5-minute setup and first operations
|
|
83
|
+
- **๐ค [Claude Desktop Setup](./docs/claude_desktop_setup.md)**: Complete Claude Desktop configuration for users and developers
|
|
84
|
+
- **๐ง [Client Configurations](./docs/client_configurations.md)**: Setup guide for Cursor, Claude Code, and other MCP clients
|
|
85
|
+
- **๐ [Examples Library](./examples/README.md)**: Implementation patterns and examples
|
|
86
|
+
|
|
87
|
+
### ๐ Guides covering setup, deployment, and usage:
|
|
88
|
+
|
|
89
|
+
- **[๐ Documentation Hub](./docs/README.md)** - Complete navigation and overview
|
|
90
|
+
- **[๐ Quick Start Guide](./docs/quick_start_guide.md)** - 5-minute setup and first operations
|
|
91
|
+
- **[๐ค Claude Desktop Setup](./docs/claude_desktop_setup.md)** - Complete Claude Desktop configuration for users and developers
|
|
92
|
+
- **[๐ง Client Configurations](./docs/client_configurations.md)** - Setup guide for Cursor, Claude Code, and other MCP clients
|
|
93
|
+
- **[๐ MCP Inspector Setup](./docs/mcp_inspector_setup.md)** - Development and testing with MCP Inspector
|
|
94
|
+
- **[๐ API Reference](./docs/api_reference.md)** - Complete tool and resource documentation
|
|
95
|
+
- **[โ๏ธ Configuration Guide](./docs/configuration_guide.md)** - Development to deployment
|
|
96
|
+
- **[๐งช Testing Guide](./docs/testing_guide.md)** - Quality assurance and test development
|
|
97
|
+
- **[๐ ๏ธ Troubleshooting Guide](./docs/troubleshooting.md)** - Problem diagnosis and resolution
|
|
98
|
+
|
|
99
|
+
## ๐ Features
|
|
100
|
+
|
|
101
|
+
### Content Management Tools
|
|
102
|
+
- **Search APIs**:
|
|
103
|
+
- **Full Text Search**: Basic content search with wildcard support
|
|
104
|
+
- **Advanced Search**: AFTS query language with date filters, sorting, and field targeting
|
|
105
|
+
- **Metadata Search**: Property-based queries with operators (equals, contains, date ranges)
|
|
106
|
+
- **CMIS Search**: SQL like queries for complex content discovery
|
|
107
|
+
- **Document Lifecycle**: Upload, download, checkin, checkout, cancel checkout
|
|
108
|
+
- **Version Management**: Create major/minor versions with comments
|
|
109
|
+
- **Folder Operations**: Create folders, delete folder nodes
|
|
110
|
+
- **Property Management**: Get and set document/folder properties and names
|
|
111
|
+
- **Node Operations**: Delete nodes (documents and folders) (trash or permanent)
|
|
112
|
+
- **Repository Info**: (Tool and Resource) Returns repository status, version and whether Community or Enterprise, and module configuration
|
|
113
|
+
|
|
114
|
+
### Modern Architecture
|
|
115
|
+
- **FastMCP 2.0 Framework**: Modern, high-performance MCP server implementation
|
|
116
|
+
- **Multiple Transports**:
|
|
117
|
+
- **STDIO** (direct MCP protocol) - Default and fastest
|
|
118
|
+
- **HTTP** (RESTful API) - Web services and testing
|
|
119
|
+
- **SSE** (Server-Sent Events) - Real-time streaming updates
|
|
120
|
+
- **Enterprise Security**: OAuth 2.1, SSO, audit logging, and encrypted communications (optional)
|
|
121
|
+
- **Type Safety**: Full Pydantic v2 models and async support
|
|
122
|
+
- **In-Memory Testing**: Client testing with faster execution
|
|
123
|
+
- **Progress Reporting**: Real-time operation progress and context logging
|
|
124
|
+
- **Configuration**: Environment variables, .env files, and CLI support
|
|
125
|
+
- **Error Handling**: Graceful error handling with detailed messages and recovery patterns
|
|
126
|
+
|
|
127
|
+
### AI Integration
|
|
128
|
+
- **MCP Tools**: 15 tools for content operations
|
|
129
|
+
- **MCP Resources**: Repository metadata and status information
|
|
130
|
+
- **MCP Prompts**: AI-friendly templates for common operations
|
|
131
|
+
|
|
132
|
+
### Alfresco Integration
|
|
133
|
+
Works with Alfresco Community (tested) and Enterprise editions
|
|
134
|
+
|
|
135
|
+
### FastMCP 2.0 Advantages
|
|
136
|
+
- **Boilerplate Reduction**: FastMCP reduces the amount of boilerplate code needed for implementing a MCP server
|
|
137
|
+
- **Modular Architecture**: Organized 15 tools across logical modules for maintainability
|
|
138
|
+
- **In-Memory Testing**: Client testing instead of FastAPI mocks
|
|
139
|
+
- **Enhanced Developer Experience**: Context logging, progress reporting, automatic schema generation
|
|
140
|
+
- **Future-Proof Architecture**: Ready for MCP 2.0 protocol evolution and AI platform integrations
|
|
141
|
+
|
|
142
|
+
|
|
143
|
+
## ๐ Requirements
|
|
144
|
+
|
|
145
|
+
- Python 3.10+
|
|
146
|
+
- Alfresco Content Services (Community or Enterprise)
|
|
147
|
+
- python-alfresco-api >= 1.1.1
|
|
148
|
+
|
|
149
|
+
## ๐ ๏ธ Installation
|
|
150
|
+
|
|
151
|
+
### Option A: Install from PyPI (Recommended for Users)
|
|
152
|
+
|
|
153
|
+
The fastest way to get started - install directly from PyPI:
|
|
154
|
+
|
|
155
|
+
```bash
|
|
156
|
+
# Option 1: pipx (Recommended) - installs in isolated environment + makes globally available
|
|
157
|
+
pipx install python-alfresco-mcp-server
|
|
158
|
+
|
|
159
|
+
# Option 2: pip - traditional package manager
|
|
160
|
+
pip install python-alfresco-mcp-server
|
|
161
|
+
|
|
162
|
+
# Option 3: UV (fastest) - Rust-based package manager
|
|
163
|
+
uv pip install python-alfresco-mcp-server
|
|
164
|
+
|
|
165
|
+
# Run immediately
|
|
166
|
+
python-alfresco-mcp-server --help
|
|
167
|
+
```
|
|
168
|
+
|
|
169
|
+
**Why pipx?** pipx automatically creates isolated environments for each tool while making commands globally available - eliminates dependency conflicts while providing system-wide access.
|
|
170
|
+
|
|
171
|
+
**Note**: You still need to configure your MCP client (Claude Desktop, MCP Inspector, etc.) with the appropriate configuration. See the [MCP Client Setup](#mcp-client-setup) section below for client configuration details.
|
|
172
|
+
|
|
173
|
+
### Option B: Install from Source (Recommended for Development)
|
|
174
|
+
|
|
175
|
+
For development or access to latest features:
|
|
176
|
+
|
|
177
|
+
### 1. Install UV (Recommended)
|
|
178
|
+
|
|
179
|
+
UV is a modern Python package manager written in **Rust** that handles everything automatically. **Much faster than pip** due to its compiled nature and optimized dependency resolution. Choose your installation method:
|
|
180
|
+
|
|
181
|
+
```bash
|
|
182
|
+
# Method 1: Official installer (recommended)
|
|
183
|
+
# Windows
|
|
184
|
+
powershell -c "irm https://astral.sh/uv/install.ps1 | iex"
|
|
185
|
+
|
|
186
|
+
# macOS/Linux
|
|
187
|
+
curl -LsSf https://astral.sh/uv/install.sh | sh
|
|
188
|
+
|
|
189
|
+
# Method 2: pip (if you prefer)
|
|
190
|
+
pip install uv
|
|
191
|
+
|
|
192
|
+
# Method 3: Package managers
|
|
193
|
+
# macOS with Homebrew
|
|
194
|
+
brew install uv
|
|
195
|
+
|
|
196
|
+
# Windows with Chocolatey
|
|
197
|
+
choco install uv
|
|
198
|
+
|
|
199
|
+
# Verify installation
|
|
200
|
+
uv --version
|
|
201
|
+
```
|
|
202
|
+
|
|
203
|
+
### 2. Get the Code
|
|
204
|
+
|
|
205
|
+
```bash
|
|
206
|
+
# Clone the repository
|
|
207
|
+
git clone https://github.com/stevereiner/python-alfresco-mcp-server.git
|
|
208
|
+
cd python-alfresco-mcp-server
|
|
209
|
+
```
|
|
210
|
+
|
|
211
|
+
### 3. Install Dependencies (Choose Method)
|
|
212
|
+
|
|
213
|
+
**Option A: UV (Recommended - Automatic everything + much faster):**
|
|
214
|
+
|
|
215
|
+
```bash
|
|
216
|
+
# UV handles venv creation and dependency installation automatically
|
|
217
|
+
# Rust-based performance makes this much faster than pip
|
|
218
|
+
uv run python-alfresco-mcp-server --help
|
|
219
|
+
|
|
220
|
+
# Or install dependencies explicitly:
|
|
221
|
+
uv sync # Basic dependencies
|
|
222
|
+
uv sync --extra dev # With development tools
|
|
223
|
+
uv sync --extra test # With testing tools
|
|
224
|
+
uv sync --extra all # Everything
|
|
225
|
+
```
|
|
226
|
+
|
|
227
|
+
**Option B: Traditional pip (Manual venv management):**
|
|
228
|
+
|
|
229
|
+
```bash
|
|
230
|
+
# Create and activate virtual environment
|
|
231
|
+
python -m venv venv # Traditional Python creates 'venv'
|
|
232
|
+
source venv/bin/activate # Linux/macOS
|
|
233
|
+
# venv\Scripts\activate # Windows
|
|
234
|
+
|
|
235
|
+
# Note: UV creates '.venv' by default (not 'venv')
|
|
236
|
+
|
|
237
|
+
# Install MCP server
|
|
238
|
+
pip install -e .
|
|
239
|
+
|
|
240
|
+
# Or with development dependencies
|
|
241
|
+
pip install -e .[dev]
|
|
242
|
+
|
|
243
|
+
# Or with testing dependencies
|
|
244
|
+
pip install -e .[test]
|
|
245
|
+
|
|
246
|
+
# Or install everything
|
|
247
|
+
pip install -e .[all]
|
|
248
|
+
```
|
|
249
|
+
|
|
250
|
+
### 4. Configure Alfresco Connection
|
|
251
|
+
|
|
252
|
+
**Option 1: Environment Variables**
|
|
253
|
+
```bash
|
|
254
|
+
# Linux/Mac
|
|
255
|
+
export ALFRESCO_URL="http://localhost:8080"
|
|
256
|
+
export ALFRESCO_USERNAME="admin"
|
|
257
|
+
export ALFRESCO_PASSWORD="admin"
|
|
258
|
+
export ALFRESCO_VERIFY_SSL="false"
|
|
259
|
+
|
|
260
|
+
# Windows PowerShell
|
|
261
|
+
$env:ALFRESCO_URL="http://localhost:8080"
|
|
262
|
+
$env:ALFRESCO_USERNAME="admin"
|
|
263
|
+
$env:ALFRESCO_PASSWORD="admin"
|
|
264
|
+
$env:ALFRESCO_VERIFY_SSL="false"
|
|
265
|
+
|
|
266
|
+
# Windows Command Prompt
|
|
267
|
+
set ALFRESCO_URL=http://localhost:8080
|
|
268
|
+
set ALFRESCO_USERNAME=admin
|
|
269
|
+
set ALFRESCO_PASSWORD=admin
|
|
270
|
+
set ALFRESCO_VERIFY_SSL=false
|
|
271
|
+
```
|
|
272
|
+
|
|
273
|
+
**Option 2: .env file** (recommended - cross-platform):
|
|
274
|
+
```bash
|
|
275
|
+
# Copy sample-dot-env.txt to .env and customize
|
|
276
|
+
cp sample-dot-env.txt .env
|
|
277
|
+
|
|
278
|
+
# Edit .env file with your settings
|
|
279
|
+
ALFRESCO_URL=http://localhost:8080
|
|
280
|
+
ALFRESCO_USERNAME=admin
|
|
281
|
+
ALFRESCO_PASSWORD=admin
|
|
282
|
+
ALFRESCO_VERIFY_SSL=false
|
|
283
|
+
```
|
|
284
|
+
> **Note**: The `.env` file is not checked into git for security. Use `sample-dot-env.txt` as a template.
|
|
285
|
+
|
|
286
|
+
๐ **See [Configuration Guide](./docs/configuration_guide.md) for complete setup options**
|
|
287
|
+
|
|
288
|
+
## Alfresco Installation
|
|
289
|
+
|
|
290
|
+
If you don't have an Alfresco server installed you can get a docker for the
|
|
291
|
+
Community version from Github
|
|
292
|
+
```bash
|
|
293
|
+
git clone https://github.com/Alfresco/acs-deployment.git
|
|
294
|
+
```
|
|
295
|
+
|
|
296
|
+
**Start Alfresco with Docker Compose**
|
|
297
|
+
```bash
|
|
298
|
+
cd acs-deployment/docker-compose
|
|
299
|
+
```
|
|
300
|
+
Note: you will likely need to comment out activemq ports other than 8161
|
|
301
|
+
in community-compose.yaml
|
|
302
|
+
```bash
|
|
303
|
+
ports:
|
|
304
|
+
- "8161:8161" # Web Console
|
|
305
|
+
#- "5672:5672" # AMQP
|
|
306
|
+
#- "61616:61616" # OpenWire
|
|
307
|
+
#- "61613:61613" # STOMP
|
|
308
|
+
|
|
309
|
+
docker-compose -f community-compose.yaml up
|
|
310
|
+
```
|
|
311
|
+
|
|
312
|
+
## ๐ Usage
|
|
313
|
+
|
|
314
|
+
### MCP Server Startup
|
|
315
|
+
|
|
316
|
+
**With UV (Recommended - Automatic venv and dependency management):**
|
|
317
|
+
|
|
318
|
+
```bash
|
|
319
|
+
# Run MCP server with STDIO transport (default)
|
|
320
|
+
uv run python-alfresco-mcp-server
|
|
321
|
+
|
|
322
|
+
# HTTP transport for web services
|
|
323
|
+
uv run python-alfresco-mcp-server --transport http --host 127.0.0.1 --port 8001
|
|
324
|
+
|
|
325
|
+
# SSE transport for real-time streaming
|
|
326
|
+
uv run python-alfresco-mcp-server --transport sse --host 127.0.0.1 --port 8003
|
|
327
|
+
```
|
|
328
|
+
|
|
329
|
+
**Traditional Python (after manual venv setup):**
|
|
330
|
+
|
|
331
|
+
```bash
|
|
332
|
+
# Run MCP server with STDIO transport (default)
|
|
333
|
+
python-alfresco-mcp-server
|
|
334
|
+
|
|
335
|
+
# Or directly with module (also STDIO by default)
|
|
336
|
+
python -m alfresco_mcp_server.fastmcp_server
|
|
337
|
+
|
|
338
|
+
# HTTP transport for web services
|
|
339
|
+
python -m alfresco_mcp_server.fastmcp_server --transport http --host 127.0.0.1 --port 8001
|
|
340
|
+
|
|
341
|
+
# SSE transport for real-time streaming
|
|
342
|
+
python -m alfresco_mcp_server.fastmcp_server --transport sse --host 127.0.0.1 --port 8003
|
|
343
|
+
```
|
|
344
|
+
|
|
345
|
+
### MCP Client Setup
|
|
346
|
+
|
|
347
|
+
#### ๐ค **Claude Desktop** (Recommended)
|
|
348
|
+
|
|
349
|
+
Claude Desktop is the primary tested and recommended MCP client with native support for the Python Alfresco MCP Server.
|
|
350
|
+
|
|
351
|
+
๐ **Complete Setup Guide**: **[Claude Desktop Setup Guide](./docs/claude_desktop_setup.md)**
|
|
352
|
+
|
|
353
|
+
**Quick Start:**
|
|
354
|
+
|
|
355
|
+
**For Users (PyPI Installation):**
|
|
356
|
+
- Install with `pipx install python-alfresco-mcp-server`
|
|
357
|
+
- Use configuration files: `claude-desktop-config-user-windows.json` or `claude-desktop-config-user-macos.json`
|
|
358
|
+
|
|
359
|
+
**For Developers (Source Installation):**
|
|
360
|
+
- Clone repository and use UV
|
|
361
|
+
- Use configuration files: `claude-desktop-config-developer-windows.json` or `claude-desktop-config-developer-macos.json`
|
|
362
|
+
|
|
363
|
+
**Using the Tools:**
|
|
364
|
+
- **Chat naturally** about what you want to do with documents
|
|
365
|
+
- Use **"Search and tools"** button in the chat box for tool access
|
|
366
|
+
- **4 individual search tools**:
|
|
367
|
+
- `search_content` (full text search)
|
|
368
|
+
- `advanced_search` (AFTS query language)
|
|
369
|
+
- `search_by_metadata` (property-based queries)
|
|
370
|
+
- `cmis_search` (CMIS SQL queries)
|
|
371
|
+
- Click **"+" โ "Add from alfresco"** for quick access to resources
|
|
372
|
+
|
|
373
|
+
**Search and Analyze Prompt:**
|
|
374
|
+
- Provides a form with query field for full-text search
|
|
375
|
+
- Analysis types: **summary**, **detailed**, **trends**, or **compliance**
|
|
376
|
+
- **Generates template text** to copy/paste into chat for editing
|
|
377
|
+
|
|
378
|
+
**Repository Info Resource (and Tool):**
|
|
379
|
+
- Provides status information in text format for viewing or copying
|
|
380
|
+
|
|
381
|
+
**Testing & Examples:**
|
|
382
|
+
- See [`prompts-for-claude.md`](./prompts-for-claude.md) for 14 manual test scenarios and examples
|
|
383
|
+
- Automated versions of all scenarios available in integration test suite
|
|
384
|
+
|
|
385
|
+
#### ๐ง **Other MCP Clients**
|
|
386
|
+
|
|
387
|
+
For Cursor, Claude Code, and other MCP clients:
|
|
388
|
+
|
|
389
|
+
๐ **Complete Setup Guide**: **[Client Configuration Guide](./docs/client_configurations.md)**
|
|
390
|
+
|
|
391
|
+
**Quick Reference:**
|
|
392
|
+
- **Cursor**: VS Code fork with AI and MCP support
|
|
393
|
+
- **Claude Code**: Anthropic's VS Code extension
|
|
394
|
+
- **Other Clients**: Generic MCP client configuration patterns
|
|
395
|
+
|
|
396
|
+
#### ๐ **MCP Inspector** (Development/Testing)
|
|
397
|
+
|
|
398
|
+
> ๐ **Setup Guide**: Complete MCP Inspector setup and connection instructions in [MCP Inspector Setup Guide](./docs/mcp_inspector_setup.md)
|
|
399
|
+
|
|
400
|
+
**Working Method (Recommended):**
|
|
401
|
+
|
|
402
|
+
1. **Start MCP Server with HTTP transport:**
|
|
403
|
+
```bash
|
|
404
|
+
# With UV (recommended)
|
|
405
|
+
uv run python-alfresco-mcp-server --transport http --port 8003
|
|
406
|
+
|
|
407
|
+
# Or traditional method
|
|
408
|
+
python -m alfresco_mcp_server.fastmcp_server --transport http --port 8003
|
|
409
|
+
```
|
|
410
|
+
|
|
411
|
+
2. **Start MCP Inspector with config:**
|
|
412
|
+
```bash
|
|
413
|
+
npx @modelcontextprotocol/inspector --config mcp-inspector-http-config.json --server python-alfresco-mcp-server
|
|
414
|
+
```
|
|
415
|
+
|
|
416
|
+
3. **Open browser with pre-filled token:**
|
|
417
|
+
- Use the URL provided in the output (includes authentication token)
|
|
418
|
+
- Example: `http://localhost:6274/?MCP_PROXY_AUTH_TOKEN=<token>`
|
|
419
|
+
|
|
420
|
+
This approach avoids proxy connection errors and provides direct authentication.
|
|
421
|
+
|
|
422
|
+
|
|
423
|
+
|
|
424
|
+
๐ก **See [Examples Library](./examples/README.md) for usage patterns**
|
|
425
|
+
|
|
426
|
+
## ๐ ๏ธ Available Tools (15 Total)
|
|
427
|
+
|
|
428
|
+
### ๐ Search Tools (4)
|
|
429
|
+
| Tool | Description | Parameters |
|
|
430
|
+
|------|-------------|------------|
|
|
431
|
+
| `search_content` | Search documents and folders | `query` (str), `max_results` (int), `node_type` (str) |
|
|
432
|
+
| `advanced_search` | Advanced search with filters | `query` (str), `content_type` (str), `created_after` (str), etc. |
|
|
433
|
+
| `search_by_metadata` | Search by metadata properties | `property_name` (str), `property_value` (str), `comparison` (str) |
|
|
434
|
+
| `cmis_search` | CMIS SQL queries | `cmis_query` (str), `preset` (str), `max_results` (int) |
|
|
435
|
+
|
|
436
|
+
### ๐ ๏ธ Core Tools (11)
|
|
437
|
+
| Tool | Description | Parameters |
|
|
438
|
+
|------|-------------|------------|
|
|
439
|
+
| `browse_repository` | Browse repository folders | `node_id` (str) |
|
|
440
|
+
| `repository_info` | Get repository information | None |
|
|
441
|
+
| `upload_document` | Upload new document | `filename` (str), `content_base64` (str), `parent_id` (str), `description` (str) |
|
|
442
|
+
| `download_document` | Download document content | `node_id` (str), `save_to_disk` (bool) |
|
|
443
|
+
| `create_folder` | Create new folder | `folder_name` (str), `parent_id` (str), `description` (str) |
|
|
444
|
+
| `get_node_properties` | Get node metadata | `node_id` (str) |
|
|
445
|
+
| `update_node_properties` | Update node metadata | `node_id` (str), `name` (str), `title` (str), `description` (str), `author` (str) |
|
|
446
|
+
| `delete_node` | Delete document/folder | `node_id` (str), `permanent` (bool) |
|
|
447
|
+
| `checkout_document` | Check out for editing | `node_id` (str), `download_for_editing` (bool) |
|
|
448
|
+
| `checkin_document` | Check in after editing | `node_id` (str), `comment` (str), `major_version` (bool), `file_path` (str) |
|
|
449
|
+
| `cancel_checkout` | Cancel checkout/unlock | `node_id` (str) |
|
|
450
|
+
|
|
451
|
+
๐ **See [API Reference](./docs/api_reference.md) for detailed tool documentation**
|
|
452
|
+
|
|
453
|
+
## ๐ Available Resources
|
|
454
|
+
|
|
455
|
+
### Repository Information
|
|
456
|
+
| Resource | Description | Access Method |
|
|
457
|
+
|----------|-------------|---------------|
|
|
458
|
+
| `repository_info` | Get comprehensive repository information including version, edition, license details, installed modules, and system status | Available as both MCP resource and tool |
|
|
459
|
+
|
|
460
|
+
The `repository_info` resource provides:
|
|
461
|
+
- **Repository Details**: ID, edition (Community/Enterprise), version information
|
|
462
|
+
- **License Information**: Issued/expires dates, remaining days, license holder, entitlements
|
|
463
|
+
- **System Status**: Read-only mode, audit enabled, quick share, thumbnail generation
|
|
464
|
+
- **Installed Modules**: Up to 10 modules with ID, title, version, and installation state
|
|
465
|
+
|
|
466
|
+
๐ **See [API Reference](./docs/api_reference.md) for detailed resource documentation**
|
|
467
|
+
|
|
468
|
+
## ๐ฏ Available Prompts
|
|
469
|
+
|
|
470
|
+
### Search and Analyze Prompt
|
|
471
|
+
| Prompt | Description | Parameters |
|
|
472
|
+
|--------|-------------|------------|
|
|
473
|
+
| `search_and_analyze` | Interactive form for guided content search and analysis | `query` (search terms), `analysis_type` (summary/detailed/trends/compliance) |
|
|
474
|
+
|
|
475
|
+
The Search and Analyze Prompt provides:
|
|
476
|
+
- **Interactive Form**: User-friendly interface with query input field
|
|
477
|
+
- **Analysis Options**: Choose from summary, detailed analysis, trends, or compliance reporting
|
|
478
|
+
- **Template Generation**: Creates copyable template text for chat conversations
|
|
479
|
+
- **Query Assistance**: Helps users structure effective search queries
|
|
480
|
+
- **Multiple Search Types**: Integrates with all 4 search tools (content, advanced, metadata, CMIS)
|
|
481
|
+
|
|
482
|
+
๐ **See [API Reference](./docs/api_reference.md) for detailed prompt documentation**
|
|
483
|
+
|
|
484
|
+
## ๐ง Configuration Options
|
|
485
|
+
|
|
486
|
+
| Environment Variable | Default | Description |
|
|
487
|
+
|---------------------|---------|-------------|
|
|
488
|
+
| `ALFRESCO_URL` | `http://localhost:8080` | Alfresco server URL |
|
|
489
|
+
| `ALFRESCO_USERNAME` | `admin` | Username for authentication |
|
|
490
|
+
| `ALFRESCO_PASSWORD` | `admin` | Password for authentication |
|
|
491
|
+
| `ALFRESCO_VERIFY_SSL` | `false` | Verify SSL certificates |
|
|
492
|
+
| `ALFRESCO_TIMEOUT` | `30` | Request timeout (seconds) |
|
|
493
|
+
| `FASTAPI_HOST` | `localhost` | FastAPI host |
|
|
494
|
+
| `FASTAPI_PORT` | `8000` | FastAPI port |
|
|
495
|
+
| `LOG_LEVEL` | `INFO` | Logging level |
|
|
496
|
+
| `MAX_FILE_SIZE` | `100000000` | Max upload size (bytes) |
|
|
497
|
+
|
|
498
|
+
โ๏ธ **See [Configuration Guide](./docs/configuration_guide.md) for deployment options**
|
|
499
|
+
|
|
500
|
+
## ๐๏ธ Architecture
|
|
501
|
+
|
|
502
|
+
```
|
|
503
|
+
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
|
|
504
|
+
โ MCP Clients โ
|
|
505
|
+
โ Claude Desktop โ MCP Inspector โ Cursor โ Claude โ
|
|
506
|
+
โ Code โ n8n โ LangFlow โ Custom MCP Client App โ
|
|
507
|
+
โโโโโโโโโโโโโโโโโโโฌโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
|
|
508
|
+
โ stdio/HTTP/SSE
|
|
509
|
+
โโโโโโโโโโโโโโโโโโโผโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
|
|
510
|
+
โ FastMCP 2.0 MCP Server โ
|
|
511
|
+
โ โโโโโโโโโโโโโโโฌโโโโโโโโโโโโโโฌโโโโโโโโโโโโโโโโโโ โ
|
|
512
|
+
โ โ MCP Tools โ MCP โ HTTP/SSE API โ โ
|
|
513
|
+
โ โ (15 total) โ Resources โ โ โ
|
|
514
|
+
โ โ โ MCP Prompts โ โ โ
|
|
515
|
+
โ โโโโโโโโโโโโโโโดโโโโโโโโโโโโโโดโโโโโโโโโโโโโโโโโโ โ
|
|
516
|
+
โโโโโโโโโโโโโโโโโโโฌโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
|
|
517
|
+
โ python-alfresco-api
|
|
518
|
+
โโโโโโโโโโโโโโโโโโโผโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
|
|
519
|
+
โ Alfresco Content Services โ
|
|
520
|
+
โ (Community/Enterprise Edition) โ
|
|
521
|
+
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
|
|
522
|
+
```
|
|
523
|
+
|
|
524
|
+
## ๐งช Testing & Quality
|
|
525
|
+
|
|
526
|
+
### Test Suite Overview
|
|
527
|
+
- **143 Total Tests**: **100% passed** - Coverage of all functionality
|
|
528
|
+
- **122 Unit Tests**: **100% passed** - Core functionality validated with mocking (FastMCP 2.0, tools, coverage)
|
|
529
|
+
- **21 Integration Tests**: **100% passed** - Live server testing (search, upload, download, document lifecycle)
|
|
530
|
+
- **Integration Tests**: Automated end-to-end testing covering all 14 manual scenarios from prompts-for-claude.md
|
|
531
|
+
- **Performance Validated**: Search <1s, concurrent operations, resource access
|
|
532
|
+
|
|
533
|
+
### Coverage Report (Post-Cleanup)
|
|
534
|
+
- **Overall Coverage**: 51% (1,829 statements tested)
|
|
535
|
+
- **FastMCP 2.0 Core**: Well tested with comprehensive unit coverage
|
|
536
|
+
- **Configuration Module**: 93% coverage - Fully tested
|
|
537
|
+
- **Package Initialization**: 100% coverage (5/5 lines) - Complete
|
|
538
|
+
- **Overall Project**: 51% coverage of comprehensive codebase
|
|
539
|
+
|
|
540
|
+
### Run Tests
|
|
541
|
+
|
|
542
|
+
```bash
|
|
543
|
+
# Run full test suite
|
|
544
|
+
pytest
|
|
545
|
+
|
|
546
|
+
# Run with coverage report
|
|
547
|
+
pytest --cov=alfresco_mcp_server --cov-report=term-missing
|
|
548
|
+
|
|
549
|
+
# Run specific test categories
|
|
550
|
+
pytest -m "unit" # Unit tests only
|
|
551
|
+
pytest -m "fastmcp" # FastMCP 2.0 tests
|
|
552
|
+
pytest -m "integration" # Integration tests (requires Alfresco)
|
|
553
|
+
```
|
|
554
|
+
|
|
555
|
+
๐งช **See [Testing Guide](./docs/testing_guide.md) for detailed testing strategies**
|
|
556
|
+
|
|
557
|
+
### ๐งช Test Categories and Execution
|
|
558
|
+
|
|
559
|
+
The project includes **4 levels of testing**:
|
|
560
|
+
|
|
561
|
+
1. **๐ Unit Tests** (122 tests) - Fast, mocked, isolated component testing
|
|
562
|
+
2. **๐ Integration Tests** (21 tests) - Live Alfresco server testing
|
|
563
|
+
3. **๐ Comprehensive Tests** - Automated prompts-for-claude.md scenarios
|
|
564
|
+
4. **๐ Coverage Tests** - Edge cases and error path coverage
|
|
565
|
+
|
|
566
|
+
**New Integration Tests:**
|
|
567
|
+
- **Automated Manual Scenarios**: All manual test scenarios from `prompts-for-claude.md` now available as automated tests
|
|
568
|
+
|
|
569
|
+
## ๐งช Development
|
|
570
|
+
|
|
571
|
+
### Setup Development Environment
|
|
572
|
+
|
|
573
|
+
```bash
|
|
574
|
+
git clone <repository>
|
|
575
|
+
cd python-alfresco-mcp-server
|
|
576
|
+
|
|
577
|
+
# Create virtual environment
|
|
578
|
+
python -m venv venv
|
|
579
|
+
source venv/bin/activate # or venv\Scripts\activate on Windows
|
|
580
|
+
|
|
581
|
+
# Install development dependencies
|
|
582
|
+
pip install -e .[dev]
|
|
583
|
+
|
|
584
|
+
# Install python-alfresco-api (local development)
|
|
585
|
+
pip install -e ../python-alfresco-api
|
|
586
|
+
```
|
|
587
|
+
|
|
588
|
+
## ๐ก Examples
|
|
589
|
+
|
|
590
|
+
### Real-world implementation patterns from beginner to enterprise:
|
|
591
|
+
|
|
592
|
+
- **[๐ก Examples Library](./examples/README.md)** - Complete navigation and learning paths
|
|
593
|
+
- **[๐ Quick Start](./examples/quick_start.py)** - 5-minute introduction and basic operations
|
|
594
|
+
- **[๐ Document Lifecycle](./examples/document_lifecycle.py)** - Complete process demonstration
|
|
595
|
+
- **[๐ Transport Examples](./examples/transport_examples.py)** - STDIO, HTTP, and SSE protocols
|
|
596
|
+
- **[โก Batch Operations](./examples/batch_operations.py)** - High-performance bulk processing
|
|
597
|
+
- **[๐ก๏ธ Error Handling](./examples/error_handling.py)** - Resilience patterns
|
|
598
|
+
- **[๐ Examples Summary](./examples/examples_summary.md)** - Overview and statistics
|
|
599
|
+
|
|
600
|
+
## ๐ค Contributing
|
|
601
|
+
|
|
602
|
+
1. Fork the repository
|
|
603
|
+
2. Create a feature branch (`git checkout -b feature/new-feature`)
|
|
604
|
+
3. Commit your changes (`git commit -m 'Add new feature'`)
|
|
605
|
+
4. Push to the branch (`git push origin feature/new-feature`)
|
|
606
|
+
5. Open a Pull Request
|
|
607
|
+
|
|
608
|
+
## ๐ License
|
|
609
|
+
|
|
610
|
+
This project is licensed under the Apache 2.0 License - see the [LICENSE](LICENSE) file for details.
|
|
611
|
+
|
|
612
|
+
## ๐ Related Projects and References
|
|
613
|
+
|
|
614
|
+
- **[Hyland Alfresco](https://www.hyland.com/en/solutions/products/alfresco-platform)** - Content management platform (Enterprise and Community editions)
|
|
615
|
+
- **[python-alfresco-api](https://github.com/stevereiner/python-alfresco-api)** - The underlying Alfresco API library
|
|
616
|
+
- **[FastMCP 2.0](https://github.com/paulinephelan/FastMCP)** - Modern framework for building MCP servers
|
|
617
|
+
- **[Model Context Protocol](https://modelcontextprotocol.io)** - Official MCP specification and documentation
|
|
618
|
+
- **[MCP Server Directory](https://playbooks.com/mcp)** - Comprehensive directory of 5,000+ MCP servers for AI agents
|
|
619
|
+
|
|
620
|
+
## ๐โโ๏ธ Support
|
|
621
|
+
|
|
622
|
+
- ๐ **Documentation**: Complete guides in [`./docs/`](./docs/README.md)
|
|
623
|
+
- ๐ก **Examples**: Implementation patterns in [`./examples/`](./examples/README.md)
|
|
624
|
+
- ๐งช **Testing**: Quality assurance in [`./docs/testing_guide.md`](./docs/testing_guide.md)
|
|
625
|
+
- ๐ **MCP Inspector**: Development testing in [`./docs/mcp_inspector_setup.md`](./docs/mcp_inspector_setup.md)
|
|
626
|
+
- ๐ ๏ธ **Troubleshooting**: Problem solving in [`./docs/troubleshooting.md`](./docs/troubleshooting.md)
|
|
627
|
+
- ๐ **Issues**: [GitHub Issues](https://github.com/stevereiner/python-alfresco-mcp-server/issues)
|
|
628
|
+
|
|
629
|
+
---
|
|
630
|
+
|
|
631
|
+
**๐ MCP server built with [python-alfresco-api](https://github.com/stevereiner/python-alfresco-api) and [FastMCP 2.0](https://github.com/paulinephelan/FastMCP)**
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
alfresco_mcp_server/__init__.py,sha256=C106Z3N9UaulxiejuPLZKrY9rYhVeSYQg9SJx2LIS2Y,639
|
|
2
|
+
alfresco_mcp_server/config.py,sha256=HrBWqx_a-udy425-bF2T28hR7GATuszTKtJ8CeVWgbI,3171
|
|
3
|
+
alfresco_mcp_server/fastmcp_server.py,sha256=N3j4ZtR_JG7G9V67slWSmwh0-0ZxQYpWi3khNQSaLP8,8684
|
|
4
|
+
alfresco_mcp_server/prompts/__init__.py,sha256=CNYbqoEhy56Xw1yuTph1zkWn5IDfMp4IjDvQ0NLyic4,98
|
|
5
|
+
alfresco_mcp_server/prompts/search_and_analyze.py,sha256=A4F2WreZlyr349mZmdk9Jeb_lFmdLoII1JEcftEcEDM,1948
|
|
6
|
+
alfresco_mcp_server/resources/__init__.py,sha256=zCbJ254ZbKY05FYB-XklkHIiugiNZ4RUiss60cHPoYA,104
|
|
7
|
+
alfresco_mcp_server/resources/repository_resources.py,sha256=Vy5gbGZZAmkmBcHdSUV96VkwxAQ1aGgb8uBS0EVbLFo,10499
|
|
8
|
+
alfresco_mcp_server/tools/__init__.py,sha256=nwtGfSYg6kMNV0zgatIS8bdQTE3T0uuPxAtTTQk4Zl0,221
|
|
9
|
+
alfresco_mcp_server/tools/core/__init__.py,sha256=EFU36odCmCB2RnXiz8v-hAswH_wtuJAm84wknpuvKak,545
|
|
10
|
+
alfresco_mcp_server/tools/core/browse_repository.py,sha256=FPKAlOh4SRy1-CJ3Ij4uD1jsdyBLTeOA7oBqM8q5IRI,7133
|
|
11
|
+
alfresco_mcp_server/tools/core/cancel_checkout.py,sha256=eG5aNSkwqm4sOfpMw8B8ZiLQAiRZ2i-1-btx_SdswfU,6696
|
|
12
|
+
alfresco_mcp_server/tools/core/checkin_document.py,sha256=SQImaZivOYLLunEBVloiKtmBjMg9q18168-4QQF3AQc,12780
|
|
13
|
+
alfresco_mcp_server/tools/core/checkout_document.py,sha256=52BQmcRjafzCzZ6OQH8n1jqRD_3wNVhfltHINKNATfM,12792
|
|
14
|
+
alfresco_mcp_server/tools/core/create_folder.py,sha256=Rp58_2VqD-jzfFsbayABQSviedLsCdo-6PcStaEb5Dk,3833
|
|
15
|
+
alfresco_mcp_server/tools/core/delete_node.py,sha256=eozN5rXtGfvxoXswg6LqKUokETLp1IglRoHBQ3qdRK8,3169
|
|
16
|
+
alfresco_mcp_server/tools/core/download_document.py,sha256=4diR4vW7qxkNzXC6ZsA7UbCm3HQj2gJxZ1F_FMtUJHc,9753
|
|
17
|
+
alfresco_mcp_server/tools/core/get_node_properties.py,sha256=UeF00qPDgkBemXusB4f39O4H04aMjsuOx-FqAgvAUyU,9561
|
|
18
|
+
alfresco_mcp_server/tools/core/update_node_properties.py,sha256=5hFyZpTDPXPuD139M7TFGgYuppASrVf_hdEaT04ZOJQ,4979
|
|
19
|
+
alfresco_mcp_server/tools/core/upload_document.py,sha256=L51dbIix8iYlpBYPe2pl5E-pz_IsAKaNrM4UyYTPvSk,9621
|
|
20
|
+
alfresco_mcp_server/tools/search/__init__.py,sha256=0X8srkfnrJZBdyEUgSUyCNOxexcn6GEwx_aRHkDPYL0,243
|
|
21
|
+
alfresco_mcp_server/tools/search/advanced_search.py,sha256=xkBEzm0y0c6WmpR8GrEWHQ-0WzHyxrjOz4gHIbFOxtg,9676
|
|
22
|
+
alfresco_mcp_server/tools/search/cmis_search.py,sha256=MwjZt28T1EKehkXLVYOJ5QXU84hC43m-HAFZq64xtyQ,7854
|
|
23
|
+
alfresco_mcp_server/tools/search/search_by_metadata.py,sha256=bHksTkn1_tAK0twpdduKFQP5rwrTgnY4W_huU6MT4rg,7819
|
|
24
|
+
alfresco_mcp_server/tools/search/search_content.py,sha256=k7joLySkt510bhDislZPVvdIGJpjmF-xgEWXfU7XBg0,8137
|
|
25
|
+
alfresco_mcp_server/utils/__init__.py,sha256=eCguQDd-PwnPMCdB-GPqv7cthaw8Jqow4P_he7Tf_bY,730
|
|
26
|
+
alfresco_mcp_server/utils/connection.py,sha256=_Q2sX05qbHoUoLLHkHEyw0rB9VKq4gr9SNcRutuHN18,4032
|
|
27
|
+
alfresco_mcp_server/utils/file_type_analysis.py,sha256=X4HvP5mgO4zAtRwi3ZhJKiTUqTuWnlQ92T5vZHDEDbI,6787
|
|
28
|
+
alfresco_mcp_server/utils/json_utils.py,sha256=8EyZjtC3-aanLb1SMm_HU9z8HSA-GKTth4vw9Sv1B3g,4245
|
|
29
|
+
python_alfresco_mcp_server-1.1.0.dist-info/licenses/LICENSE,sha256=F96EzotgWhhpnQTW2TcdoqrMDir1jyEo6H915tGQ-QE,11524
|
|
30
|
+
python_alfresco_mcp_server-1.1.0.dist-info/METADATA,sha256=dfOPL91C-QczMalNvYieO1zG-hOuZqG4Ky2APvX_Uz4,28455
|
|
31
|
+
python_alfresco_mcp_server-1.1.0.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
|
|
32
|
+
python_alfresco_mcp_server-1.1.0.dist-info/entry_points.txt,sha256=mLbsqzGceUhk-6JYnqy3pQOr22d1YBZckDiawcEsCU0,87
|
|
33
|
+
python_alfresco_mcp_server-1.1.0.dist-info/top_level.txt,sha256=0UDTQHV2YeiAfyiIgGIfYLzvjpbXq3vg40HJIIjIeEU,20
|
|
34
|
+
python_alfresco_mcp_server-1.1.0.dist-info/RECORD,,
|