arch-ops-server 3.0.0__tar.gz → 3.1.0__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.
- {arch_ops_server-3.0.0 → arch_ops_server-3.1.0}/PKG-INFO +11 -4
- {arch_ops_server-3.0.0 → arch_ops_server-3.1.0}/README.md +7 -3
- {arch_ops_server-3.0.0 → arch_ops_server-3.1.0}/pyproject.toml +6 -1
- {arch_ops_server-3.0.0 → arch_ops_server-3.1.0}/src/arch_ops_server/__init__.py +17 -7
- arch_ops_server-3.1.0/src/arch_ops_server/http_server.py +829 -0
- {arch_ops_server-3.0.0 → arch_ops_server-3.1.0}/src/arch_ops_server/server.py +381 -42
- arch_ops_server-3.1.0/src/arch_ops_server/tool_metadata.py +627 -0
- {arch_ops_server-3.0.0 → arch_ops_server-3.1.0}/src/arch_ops_server/aur.py +0 -0
- {arch_ops_server-3.0.0 → arch_ops_server-3.1.0}/src/arch_ops_server/config.py +0 -0
- {arch_ops_server-3.0.0 → arch_ops_server-3.1.0}/src/arch_ops_server/logs.py +0 -0
- {arch_ops_server-3.0.0 → arch_ops_server-3.1.0}/src/arch_ops_server/mirrors.py +0 -0
- {arch_ops_server-3.0.0 → arch_ops_server-3.1.0}/src/arch_ops_server/news.py +0 -0
- {arch_ops_server-3.0.0 → arch_ops_server-3.1.0}/src/arch_ops_server/pacman.py +0 -0
- {arch_ops_server-3.0.0 → arch_ops_server-3.1.0}/src/arch_ops_server/py.typed +0 -0
- {arch_ops_server-3.0.0 → arch_ops_server-3.1.0}/src/arch_ops_server/system.py +0 -0
- {arch_ops_server-3.0.0 → arch_ops_server-3.1.0}/src/arch_ops_server/utils.py +0 -0
- {arch_ops_server-3.0.0 → arch_ops_server-3.1.0}/src/arch_ops_server/wiki.py +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.3
|
|
2
2
|
Name: arch-ops-server
|
|
3
|
-
Version: 3.
|
|
3
|
+
Version: 3.1.0
|
|
4
4
|
Summary: MCP server bridging AI assistants with Arch Linux ecosystem (Wiki, AUR, official repos)
|
|
5
5
|
Keywords: arch-linux,mcp,model-context-protocol,aur,pacman,wiki,ai-assistant
|
|
6
6
|
Author: Nihal
|
|
@@ -27,12 +27,17 @@ Requires-Dist: pytest-asyncio>=0.23.0 ; extra == 'dev'
|
|
|
27
27
|
Requires-Dist: pytest-cov>=4.1.0 ; extra == 'dev'
|
|
28
28
|
Requires-Dist: pytest-mock>=3.12.0 ; extra == 'dev'
|
|
29
29
|
Requires-Dist: httpx>=0.27.0 ; extra == 'dev'
|
|
30
|
+
Requires-Dist: starlette>=0.27.0 ; extra == 'http'
|
|
31
|
+
Requires-Dist: uvicorn[standard]>=0.23.0 ; extra == 'http'
|
|
30
32
|
Requires-Python: >=3.11
|
|
31
33
|
Provides-Extra: dev
|
|
34
|
+
Provides-Extra: http
|
|
32
35
|
Description-Content-Type: text/markdown
|
|
33
36
|
|
|
34
37
|
# Arch Linux MCP Server
|
|
35
38
|
|
|
39
|
+
[](https://pepy.tech/projects/arch-ops-server)
|
|
40
|
+
|
|
36
41
|
<a href="https://glama.ai/mcp/servers/@nihalxkumar/arch-mcp">
|
|
37
42
|
<img width="380" height="200" src="https://glama.ai/mcp/servers/@nihalxkumar/arch-mcp/badge" />
|
|
38
43
|
</a>
|
|
@@ -244,7 +249,9 @@ Contributions are greatly appreciated. Please feel free to submit a pull request
|
|
|
244
249
|
|
|
245
250
|
This project is dual-licensed under your choice of:
|
|
246
251
|
|
|
247
|
-
- **[GPL-3.0-only](https://www.gnu.org/licenses/gpl-3.0.en.html)** - See [LICENSE-GPL](LICENSE-GPL)
|
|
248
|
-
- **[MIT License](https://opensource.org/licenses/MIT)** - See [LICENSE-MIT](LICENSE-MIT)
|
|
252
|
+
- **[GPL-3.0-only](https://www.gnu.org/licenses/gpl-3.0.en.html)** - For those who prefer strong copyleft protections. See [LICENSE-GPL](LICENSE-GPL)
|
|
253
|
+
- **[MIT License](https://opensource.org/licenses/MIT)** - For broader compatibility and adoption, including use in proprietary software and compatibility with platforms like Docker MCP Catalog. See [LICENSE-MIT](LICENSE-MIT)
|
|
254
|
+
|
|
255
|
+
You may use this software under the terms of either license. When redistributing or modifying this software, you may choose which license to apply.
|
|
249
256
|
|
|
250
|
-
|
|
257
|
+
By contributing to this project, you agree that your contributions will be licensed under both licenses.
|
|
@@ -1,5 +1,7 @@
|
|
|
1
1
|
# Arch Linux MCP Server
|
|
2
2
|
|
|
3
|
+
[](https://pepy.tech/projects/arch-ops-server)
|
|
4
|
+
|
|
3
5
|
<a href="https://glama.ai/mcp/servers/@nihalxkumar/arch-mcp">
|
|
4
6
|
<img width="380" height="200" src="https://glama.ai/mcp/servers/@nihalxkumar/arch-mcp/badge" />
|
|
5
7
|
</a>
|
|
@@ -211,7 +213,9 @@ Contributions are greatly appreciated. Please feel free to submit a pull request
|
|
|
211
213
|
|
|
212
214
|
This project is dual-licensed under your choice of:
|
|
213
215
|
|
|
214
|
-
- **[GPL-3.0-only](https://www.gnu.org/licenses/gpl-3.0.en.html)** - See [LICENSE-GPL](LICENSE-GPL)
|
|
215
|
-
- **[MIT License](https://opensource.org/licenses/MIT)** - See [LICENSE-MIT](LICENSE-MIT)
|
|
216
|
+
- **[GPL-3.0-only](https://www.gnu.org/licenses/gpl-3.0.en.html)** - For those who prefer strong copyleft protections. See [LICENSE-GPL](LICENSE-GPL)
|
|
217
|
+
- **[MIT License](https://opensource.org/licenses/MIT)** - For broader compatibility and adoption, including use in proprietary software and compatibility with platforms like Docker MCP Catalog. See [LICENSE-MIT](LICENSE-MIT)
|
|
218
|
+
|
|
219
|
+
You may use this software under the terms of either license. When redistributing or modifying this software, you may choose which license to apply.
|
|
216
220
|
|
|
217
|
-
|
|
221
|
+
By contributing to this project, you agree that your contributions will be licensed under both licenses.
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
[project]
|
|
2
2
|
name = "arch-ops-server"
|
|
3
|
-
version = "3.
|
|
3
|
+
version = "3.1.0"
|
|
4
4
|
description = "MCP server bridging AI assistants with Arch Linux ecosystem (Wiki, AUR, official repos)"
|
|
5
5
|
readme = {file = "README.md", content-type = "text/markdown"}
|
|
6
6
|
license = { text = "GPL-3.0-only OR MIT" }
|
|
@@ -32,6 +32,7 @@ dependencies = [
|
|
|
32
32
|
|
|
33
33
|
[project.scripts]
|
|
34
34
|
arch-ops-server = "arch_ops_server:main_sync"
|
|
35
|
+
arch-ops-server-http = "arch_ops_server:main_http_sync"
|
|
35
36
|
|
|
36
37
|
[project.optional-dependencies]
|
|
37
38
|
dev = [
|
|
@@ -41,6 +42,10 @@ dev = [
|
|
|
41
42
|
"pytest-mock>=3.12.0",
|
|
42
43
|
"httpx>=0.27.0", # For testing async HTTP
|
|
43
44
|
]
|
|
45
|
+
http = [
|
|
46
|
+
"starlette>=0.27.0",
|
|
47
|
+
"uvicorn[standard]>=0.23.0",
|
|
48
|
+
]
|
|
44
49
|
|
|
45
50
|
[tool.pytest.ini_options]
|
|
46
51
|
testpaths = ["tests"]
|
|
@@ -6,7 +6,7 @@ A Model Context Protocol server that bridges AI assistants with the Arch Linux
|
|
|
6
6
|
ecosystem, providing access to the Arch Wiki, AUR, and official repositories.
|
|
7
7
|
"""
|
|
8
8
|
|
|
9
|
-
__version__ = "
|
|
9
|
+
__version__ = "3.1.0"
|
|
10
10
|
|
|
11
11
|
from .wiki import search_wiki, get_wiki_page, get_wiki_page_as_text
|
|
12
12
|
from .aur import (
|
|
@@ -75,19 +75,19 @@ from .server import server
|
|
|
75
75
|
async def main():
|
|
76
76
|
"""
|
|
77
77
|
Main entry point for the MCP server.
|
|
78
|
-
Runs the server using STDIO transport.
|
|
78
|
+
Runs the server using STDIO transport (default for Docker MCP Catalog).
|
|
79
79
|
"""
|
|
80
80
|
import asyncio
|
|
81
81
|
import mcp.server.stdio
|
|
82
82
|
import logging
|
|
83
|
-
|
|
83
|
+
|
|
84
84
|
# Set up logging
|
|
85
85
|
logging.basicConfig(level=logging.INFO)
|
|
86
86
|
logger = logging.getLogger(__name__)
|
|
87
|
-
|
|
88
|
-
logger.info("Starting Arch Linux MCP Server")
|
|
87
|
+
|
|
88
|
+
logger.info("Starting Arch Linux MCP Server (STDIO)")
|
|
89
89
|
logger.info(f"Running on Arch Linux: {IS_ARCH}")
|
|
90
|
-
|
|
90
|
+
|
|
91
91
|
# Run the server using STDIO
|
|
92
92
|
async with mcp.server.stdio.stdio_server() as (read_stream, write_stream):
|
|
93
93
|
await server.run(
|
|
@@ -98,10 +98,19 @@ async def main():
|
|
|
98
98
|
|
|
99
99
|
|
|
100
100
|
def main_sync():
|
|
101
|
-
"""Synchronous wrapper for the main function."""
|
|
101
|
+
"""Synchronous wrapper for the main function (STDIO transport)."""
|
|
102
102
|
import asyncio
|
|
103
103
|
asyncio.run(main())
|
|
104
104
|
|
|
105
|
+
|
|
106
|
+
def main_http_sync():
|
|
107
|
+
"""
|
|
108
|
+
Main entry point for HTTP server (for Smithery).
|
|
109
|
+
Runs the server using SSE (Server-Sent Events) HTTP transport.
|
|
110
|
+
"""
|
|
111
|
+
from .http_server import main_http
|
|
112
|
+
main_http()
|
|
113
|
+
|
|
105
114
|
__all__ = [
|
|
106
115
|
# Wiki
|
|
107
116
|
"search_wiki",
|
|
@@ -163,4 +172,5 @@ __all__ = [
|
|
|
163
172
|
# Main functions
|
|
164
173
|
"main",
|
|
165
174
|
"main_sync",
|
|
175
|
+
"main_http_sync",
|
|
166
176
|
]
|