appmcp 0.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.
Files changed (50) hide show
  1. appmcp-0.1.0/.gitattributes +2 -0
  2. appmcp-0.1.0/.github/workflows/ci.yml +39 -0
  3. appmcp-0.1.0/.github/workflows/publish.yml +25 -0
  4. appmcp-0.1.0/CHANGELOG.md +21 -0
  5. appmcp-0.1.0/LICENSE +12 -0
  6. appmcp-0.1.0/PKG-INFO +671 -0
  7. appmcp-0.1.0/README.md +624 -0
  8. appmcp-0.1.0/REVIEW.md +38 -0
  9. appmcp-0.1.0/SECURITY.md +21 -0
  10. appmcp-0.1.0/appmcp/__init__.py +18 -0
  11. appmcp-0.1.0/appmcp/adapters/__init__.py +5 -0
  12. appmcp-0.1.0/appmcp/adapters/base.py +13 -0
  13. appmcp-0.1.0/appmcp/adapters/fastmcp.py +41 -0
  14. appmcp-0.1.0/appmcp/adapters/official_sdk.py +48 -0
  15. appmcp-0.1.0/appmcp/application.py +264 -0
  16. appmcp-0.1.0/appmcp/audit.py +45 -0
  17. appmcp-0.1.0/appmcp/cli.py +89 -0
  18. appmcp-0.1.0/appmcp/config.py +16 -0
  19. appmcp-0.1.0/appmcp/context.py +20 -0
  20. appmcp-0.1.0/appmcp/decorators.py +85 -0
  21. appmcp-0.1.0/appmcp/definitions.py +39 -0
  22. appmcp-0.1.0/appmcp/dependencies.py +40 -0
  23. appmcp-0.1.0/appmcp/exceptions.py +30 -0
  24. appmcp-0.1.0/appmcp/integrations/__init__.py +3 -0
  25. appmcp-0.1.0/appmcp/integrations/asgi.py +147 -0
  26. appmcp-0.1.0/appmcp/integrations/django.py +5 -0
  27. appmcp-0.1.0/appmcp/integrations/fastapi.py +5 -0
  28. appmcp-0.1.0/appmcp/integrations/flask.py +8 -0
  29. appmcp-0.1.0/appmcp/integrations/starlette.py +5 -0
  30. appmcp-0.1.0/appmcp/plugins.py +17 -0
  31. appmcp-0.1.0/appmcp/py.typed +0 -0
  32. appmcp-0.1.0/appmcp/registry.py +66 -0
  33. appmcp-0.1.0/appmcp/security/__init__.py +14 -0
  34. appmcp-0.1.0/appmcp/security/auth.py +56 -0
  35. appmcp-0.1.0/appmcp/security/policies.py +30 -0
  36. appmcp-0.1.0/appmcp/security/rate_limits.py +60 -0
  37. appmcp-0.1.0/appmcp/security/scopes.py +2 -0
  38. appmcp-0.1.0/appmcp/sessions.py +40 -0
  39. appmcp-0.1.0/appmcp/settings.py +11 -0
  40. appmcp-0.1.0/appmcp/telemetry.py +16 -0
  41. appmcp-0.1.0/appmcp/testing/__init__.py +3 -0
  42. appmcp-0.1.0/appmcp/testing/client.py +46 -0
  43. appmcp-0.1.0/appmcp.png +0 -0
  44. appmcp-0.1.0/docs/guide.md +70 -0
  45. appmcp-0.1.0/pyproject.toml +76 -0
  46. appmcp-0.1.0/tests/conftest.py +14 -0
  47. appmcp-0.1.0/tests/test_appmcp.py +133 -0
  48. appmcp-0.1.0/tests/test_backend.py +108 -0
  49. appmcp-0.1.0/tests/test_fastmcp_integration.py +22 -0
  50. appmcp-0.1.0/tests/test_support.py +23 -0
@@ -0,0 +1,2 @@
1
+ # Auto detect text files and perform LF normalization
2
+ * text=auto
@@ -0,0 +1,39 @@
1
+ name: CI
2
+
3
+ on:
4
+ push:
5
+ branches: [main]
6
+ pull_request:
7
+ workflow_dispatch:
8
+
9
+ jobs:
10
+ test:
11
+ runs-on: ubuntu-latest
12
+ strategy:
13
+ fail-fast: false
14
+ matrix:
15
+ python-version: ["3.10", "3.11", "3.12", "3.13"]
16
+
17
+ steps:
18
+ - uses: actions/checkout@v4
19
+ - uses: actions/setup-python@v5
20
+ with:
21
+ python-version: ${{ matrix.python-version }}
22
+ cache: pip
23
+ - run: python -m pip install --upgrade pip
24
+ - run: python -m pip install -e ".[dev,fastapi]"
25
+ - run: ruff check appmcp tests
26
+ - run: ruff format --check appmcp tests
27
+ - run: pytest --cov=appmcp --cov-report=term-missing
28
+
29
+ package:
30
+ runs-on: ubuntu-latest
31
+ steps:
32
+ - uses: actions/checkout@v4
33
+ - uses: actions/setup-python@v5
34
+ with:
35
+ python-version: "3.13"
36
+ cache: pip
37
+ - run: python -m pip install --upgrade pip build twine
38
+ - run: python -m build
39
+ - run: python -m twine check dist/*
@@ -0,0 +1,25 @@
1
+ name: Publish to PyPI
2
+
3
+ on:
4
+ release:
5
+ types: [published]
6
+
7
+ permissions:
8
+ contents: read
9
+ id-token: write
10
+
11
+ jobs:
12
+ publish:
13
+ runs-on: ubuntu-latest
14
+ environment:
15
+ name: pypi
16
+ url: https://pypi.org/p/appmcp
17
+
18
+ steps:
19
+ - uses: actions/checkout@v4
20
+ - uses: actions/setup-python@v5
21
+ with:
22
+ python-version: "3.13"
23
+ - run: python -m pip install --upgrade pip build
24
+ - run: python -m build
25
+ - uses: pypa/gh-action-pypi-publish@release/v1
@@ -0,0 +1,21 @@
1
+ # Changelog
2
+
3
+ All notable changes to AppMCP will be documented here.
4
+
5
+ ## 0.1.0 - 2026-07-16
6
+
7
+ ### Added
8
+
9
+ - Explicit MCP tool, resource, and prompt decorators
10
+ - Existing service registration with namespaces
11
+ - Application dependency injection and `MCPContext`
12
+ - Bearer authentication, scopes, confirmation checks, dynamic availability,
13
+ and process-local rate limiting
14
+ - FastAPI, Starlette, and generic ASGI mounting
15
+ - Parent and child ASGI lifespan coordination
16
+ - Middleware, auditing, telemetry, and in-memory testing
17
+ - FastMCP 3 backend and experimental official SDK adapter
18
+ - CLI inspection, registration validation, development serving, and client
19
+ configuration generation
20
+ - Redis session/rate-limit extension points and plugin loading helpers
21
+ - Python 3.10 through 3.13 CI, build verification, and PyPI trusted publishing
appmcp-0.1.0/LICENSE ADDED
@@ -0,0 +1,12 @@
1
+ MIT License
2
+
3
+ Copyright (c) 2026 AppMCP contributors
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies.
9
+
10
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
11
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
12
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.