Initial commit: Paperless-ngx MCP Server

A Model Context Protocol (MCP) server for Paperless-ngx document management.

Features:
- Full CRUD operations for documents, tags, correspondents, document types,
  storage paths, and custom fields
- Document upload with retry logic (base64 and file path)
- Bulk operations with dry-run support
- Search with full-text and metadata filtering
- Pagination support across all list operations
- Proper error handling with McpResponse wrapper

Built with .NET 10 and the official MCP SDK.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
This commit is contained in:
Barry Walker
2026-01-13 14:01:44 -05:00
commit a37630aeac
37 changed files with 6638 additions and 0 deletions
+48
View File
@@ -0,0 +1,48 @@
Microsoft Visual Studio Solution File, Format Version 12.00
# Visual Studio Version 17
VisualStudioVersion = 17.0.31903.59
MinimumVisualStudioVersion = 10.0.40219.1
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "PaperlessMCP", "PaperlessMCP\PaperlessMCP.csproj", "{8A47AF8F-D41E-4CDD-9A54-5F1F52A833DB}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "PaperlessMCP.Tests", "PaperlessMCP.Tests\PaperlessMCP.Tests.csproj", "{33933071-3974-4E54-8DE2-590A4AB316A3}"
EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
Debug|Any CPU = Debug|Any CPU
Debug|x64 = Debug|x64
Debug|x86 = Debug|x86
Release|Any CPU = Release|Any CPU
Release|x64 = Release|x64
Release|x86 = Release|x86
EndGlobalSection
GlobalSection(ProjectConfigurationPlatforms) = postSolution
{8A47AF8F-D41E-4CDD-9A54-5F1F52A833DB}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{8A47AF8F-D41E-4CDD-9A54-5F1F52A833DB}.Debug|Any CPU.Build.0 = Debug|Any CPU
{8A47AF8F-D41E-4CDD-9A54-5F1F52A833DB}.Debug|x64.ActiveCfg = Debug|Any CPU
{8A47AF8F-D41E-4CDD-9A54-5F1F52A833DB}.Debug|x64.Build.0 = Debug|Any CPU
{8A47AF8F-D41E-4CDD-9A54-5F1F52A833DB}.Debug|x86.ActiveCfg = Debug|Any CPU
{8A47AF8F-D41E-4CDD-9A54-5F1F52A833DB}.Debug|x86.Build.0 = Debug|Any CPU
{8A47AF8F-D41E-4CDD-9A54-5F1F52A833DB}.Release|Any CPU.ActiveCfg = Release|Any CPU
{8A47AF8F-D41E-4CDD-9A54-5F1F52A833DB}.Release|Any CPU.Build.0 = Release|Any CPU
{8A47AF8F-D41E-4CDD-9A54-5F1F52A833DB}.Release|x64.ActiveCfg = Release|Any CPU
{8A47AF8F-D41E-4CDD-9A54-5F1F52A833DB}.Release|x64.Build.0 = Release|Any CPU
{8A47AF8F-D41E-4CDD-9A54-5F1F52A833DB}.Release|x86.ActiveCfg = Release|Any CPU
{8A47AF8F-D41E-4CDD-9A54-5F1F52A833DB}.Release|x86.Build.0 = Release|Any CPU
{33933071-3974-4E54-8DE2-590A4AB316A3}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{33933071-3974-4E54-8DE2-590A4AB316A3}.Debug|Any CPU.Build.0 = Debug|Any CPU
{33933071-3974-4E54-8DE2-590A4AB316A3}.Debug|x64.ActiveCfg = Debug|Any CPU
{33933071-3974-4E54-8DE2-590A4AB316A3}.Debug|x64.Build.0 = Debug|Any CPU
{33933071-3974-4E54-8DE2-590A4AB316A3}.Debug|x86.ActiveCfg = Debug|Any CPU
{33933071-3974-4E54-8DE2-590A4AB316A3}.Debug|x86.Build.0 = Debug|Any CPU
{33933071-3974-4E54-8DE2-590A4AB316A3}.Release|Any CPU.ActiveCfg = Release|Any CPU
{33933071-3974-4E54-8DE2-590A4AB316A3}.Release|Any CPU.Build.0 = Release|Any CPU
{33933071-3974-4E54-8DE2-590A4AB316A3}.Release|x64.ActiveCfg = Release|Any CPU
{33933071-3974-4E54-8DE2-590A4AB316A3}.Release|x64.Build.0 = Release|Any CPU
{33933071-3974-4E54-8DE2-590A4AB316A3}.Release|x86.ActiveCfg = Release|Any CPU
{33933071-3974-4E54-8DE2-590A4AB316A3}.Release|x86.Build.0 = Release|Any CPU
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE
EndGlobalSection
EndGlobal