agentkit-mcp 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.
- agentkit_mcp-0.1.0/LICENSE +23 -0
- agentkit_mcp-0.1.0/PKG-INFO +117 -0
- agentkit_mcp-0.1.0/README.md +102 -0
- agentkit_mcp-0.1.0/agentkit_mcp.egg-info/PKG-INFO +117 -0
- agentkit_mcp-0.1.0/agentkit_mcp.egg-info/SOURCES.txt +16 -0
- agentkit_mcp-0.1.0/agentkit_mcp.egg-info/dependency_links.txt +1 -0
- agentkit_mcp-0.1.0/agentkit_mcp.egg-info/requires.txt +3 -0
- agentkit_mcp-0.1.0/agentkit_mcp.egg-info/top_level.txt +3 -0
- agentkit_mcp-0.1.0/auth_middleware.py +113 -0
- agentkit_mcp-0.1.0/mcp_server.py +326 -0
- agentkit_mcp-0.1.0/pyproject.toml +23 -0
- agentkit_mcp-0.1.0/setup.cfg +4 -0
- agentkit_mcp-0.1.0/tests/test_auth_middleware.py +80 -0
- agentkit_mcp-0.1.0/tests/test_live_workflow.py +24 -0
- agentkit_mcp-0.1.0/tests/test_mcp_protocol.py +41 -0
- agentkit_mcp-0.1.0/tests/test_mcp_tools.py +74 -0
- agentkit_mcp-0.1.0/tests/test_real_data_apis.py +49 -0
- agentkit_mcp-0.1.0/web_app.py +222 -0
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
GNU AFFERO GENERAL PUBLIC LICENSE (AGPL-3.0)
|
|
2
|
+
|
|
3
|
+
Copyright (c) 2026 Yacine (OmniIntelOS / Ysiddo AI Projects)
|
|
4
|
+
|
|
5
|
+
This program is free software: you can redistribute it and/or modify
|
|
6
|
+
it under the terms of the GNU Affero General Public License as published
|
|
7
|
+
by the Free Software Foundation, either version 3 of the License, or
|
|
8
|
+
(at your option) any later version.
|
|
9
|
+
|
|
10
|
+
This program is distributed in the hope that it will be useful,
|
|
11
|
+
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
12
|
+
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
13
|
+
GNU Affero General Public License for more details.
|
|
14
|
+
|
|
15
|
+
========================================================================
|
|
16
|
+
DUAL-LICENSE / COMMERCIAL USE WARNING:
|
|
17
|
+
========================================================================
|
|
18
|
+
This software is licensed under AGPLv3, which requires that any network
|
|
19
|
+
service (SaaS) built using this code MUST open-source its entire backend.
|
|
20
|
+
|
|
21
|
+
If you are a commercial entity and wish to integrate this code into a
|
|
22
|
+
proprietary, closed-source system, you MUST purchase a Commercial License.
|
|
23
|
+
Contact the author to discuss commercial licensing and Enterprise support.
|
|
@@ -0,0 +1,117 @@
|
|
|
1
|
+
Metadata-Version: 2.4
|
|
2
|
+
Name: agentkit-mcp
|
|
3
|
+
Version: 0.1.0
|
|
4
|
+
Summary: AgentKit MCP Server — Business Intelligence tools for Claude/Cursor agents.
|
|
5
|
+
Author: Yacine
|
|
6
|
+
License: AGPL-3.0
|
|
7
|
+
Classifier: License :: OSI Approved :: GNU Affero General Public License v3 or later (AGPLv3+)
|
|
8
|
+
Requires-Python: >=3.10
|
|
9
|
+
Description-Content-Type: text/markdown
|
|
10
|
+
License-File: LICENSE
|
|
11
|
+
Requires-Dist: fastmcp
|
|
12
|
+
Requires-Dist: uvicorn
|
|
13
|
+
Requires-Dist: python-dotenv
|
|
14
|
+
Dynamic: license-file
|
|
15
|
+
|
|
16
|
+
# AgentKit — MCP Server for Business Intelligence Agents
|
|
17
|
+
|
|
18
|
+
[](https://github.com/Yacine-ai-tech/AgentKit/actions/workflows/ci.yml) [](LICENSE)
|
|
19
|
+
|
|
20
|
+
Expose enterprise KPIs, health scores, forecasting, and anomaly detection as
|
|
21
|
+
tools, resources, and prompt templates that any MCP-compatible agent (Claude
|
|
22
|
+
Desktop, Cursor, LangGraph, Claude Agent SDK, CrewAI) can use.
|
|
23
|
+
> 🔗 **Live MCP server (SSE):** https://agentkit.ysiddo-ai-projects.app/sse — connect from Claude Desktop
|
|
24
|
+
> via `mcp-remote` (see [claude_desktop_config.example.json](claude_desktop_config.example.json)). On-demand backend (first call ~30–60 s).
|
|
25
|
+
|
|
26
|
+
## What It Does
|
|
27
|
+
|
|
28
|
+
- **6 MCP Tools**: `query_kpis`, `get_company_health`, `detect_kpi_anomalies`, `forecast_metric`, `list_available_metrics`, `get_executive_summary`
|
|
29
|
+
- **6 MCP Resources**: `kpi://Finance/latest` and similar for Growth, Operations, People, ESG, IT_Ops
|
|
30
|
+
- **1 Reusable Prompt**: `monthly_executive_briefing`
|
|
31
|
+
- **LangGraph 3-agent workflow** in `workflow.py`
|
|
32
|
+
- **Claude Agent SDK demo** in `demos/claude_agent_sdk_demo.py`
|
|
33
|
+
- **CrewAI demo** in `demos/crewai_demo.py`
|
|
34
|
+
- **DSPy research scaffold** in `research/dspy_experiment.py`
|
|
35
|
+
|
|
36
|
+
## Quick Start
|
|
37
|
+
|
|
38
|
+
```bash
|
|
39
|
+
python -m venv .venv && source .venv/bin/activate
|
|
40
|
+
pip install -r requirements.txt
|
|
41
|
+
cp .env.example .env # fill in keys + POSTGRES_URL
|
|
42
|
+
python mcp_server.py
|
|
43
|
+
```
|
|
44
|
+
|
|
45
|
+
## Claude Desktop Setup
|
|
46
|
+
|
|
47
|
+
Add to `~/.config/Claude/claude_desktop_config.json`:
|
|
48
|
+
|
|
49
|
+
```json
|
|
50
|
+
{
|
|
51
|
+
"mcpServers": {
|
|
52
|
+
"agentkit": {
|
|
53
|
+
"command": "python",
|
|
54
|
+
"args": ["/abs/path/to/agentkit/mcp_server.py"],
|
|
55
|
+
"env": {
|
|
56
|
+
"POSTGRES_URL": "postgresql://...",
|
|
57
|
+
"ANTHROPIC_API_KEY": "sk-ant-..."
|
|
58
|
+
}
|
|
59
|
+
}
|
|
60
|
+
}
|
|
61
|
+
}
|
|
62
|
+
```
|
|
63
|
+
|
|
64
|
+
Restart Claude Desktop, then ask:
|
|
65
|
+
- "What's our company health right now?"
|
|
66
|
+
- "Forecast revenue for the next 6 months."
|
|
67
|
+
- "Are there anomalies in the Finance KPIs?"
|
|
68
|
+
|
|
69
|
+
## LangGraph Workflow
|
|
70
|
+
|
|
71
|
+
```python
|
|
72
|
+
from workflow import analyze
|
|
73
|
+
result = analyze("What drove gross margin in Q1?")
|
|
74
|
+
print(result["report"])
|
|
75
|
+
```
|
|
76
|
+
|
|
77
|
+
## Architecture
|
|
78
|
+
|
|
79
|
+
```
|
|
80
|
+
Claude Desktop / Cursor / LangGraph
|
|
81
|
+
│
|
|
82
|
+
▼ MCP
|
|
83
|
+
┌──────────────────┐
|
|
84
|
+
│ mcp_server.py │
|
|
85
|
+
│ 6 tools │
|
|
86
|
+
│ 6 resources │
|
|
87
|
+
│ 1 prompt │
|
|
88
|
+
└────────┬─────────┘
|
|
89
|
+
│
|
|
90
|
+
┌──────────────┼──────────────┐
|
|
91
|
+
▼ ▼ ▼
|
|
92
|
+
pg_store insights forecasting
|
|
93
|
+
(KPIs) (health, (LinearReg
|
|
94
|
+
anomalies) + Monte Carlo)
|
|
95
|
+
```
|
|
96
|
+
|
|
97
|
+
## License
|
|
98
|
+
|
|
99
|
+
MIT
|
|
100
|
+
|
|
101
|
+
## ⚖️ License & Enterprise Use (Dual-License)
|
|
102
|
+
|
|
103
|
+
This project is open-source under the **AGPL-3.0 License**. It is completely free for researchers, students, and open-source hobbyists.
|
|
104
|
+
|
|
105
|
+
> **Commercial Use:** The AGPLv3 license requires that any proprietary network service (SaaS, internal corporate tools) that uses or modifies this code must also open-source its entire backend.
|
|
106
|
+
>
|
|
107
|
+
> If you wish to use this framework in a closed-source commercial environment, or require **Enterprise features** (SSO, Active Directory, Custom VPC Deployment, Strict RBAC), you must obtain a **Commercial License**.
|
|
108
|
+
> Please reach out to discuss commercial licensing and integration consulting.
|
|
109
|
+
|
|
110
|
+
## 📡 Anonymous Telemetry
|
|
111
|
+
This project collects anonymous, GDPR-compliant startup pings to help the author understand usage volume and prioritize development.
|
|
112
|
+
* **What is collected:** Only the project name and a "startup" event timestamp. No PII, no API keys, no user data.
|
|
113
|
+
* **How to disable:** We respect your privacy. To opt-out, simply set `TELEMETRY_OPT_OUT=true` in your `.env` file.
|
|
114
|
+
|
|
115
|
+
|
|
116
|
+
<!-- Scarf Analytics Pixel -->
|
|
117
|
+
<img referrerpolicy="no-referrer-when-downgrade" src="https://static.scarf.sh/a.png?x-pxid=agentkit-yacine-ai-projects" />
|
|
@@ -0,0 +1,102 @@
|
|
|
1
|
+
# AgentKit — MCP Server for Business Intelligence Agents
|
|
2
|
+
|
|
3
|
+
[](https://github.com/Yacine-ai-tech/AgentKit/actions/workflows/ci.yml) [](LICENSE)
|
|
4
|
+
|
|
5
|
+
Expose enterprise KPIs, health scores, forecasting, and anomaly detection as
|
|
6
|
+
tools, resources, and prompt templates that any MCP-compatible agent (Claude
|
|
7
|
+
Desktop, Cursor, LangGraph, Claude Agent SDK, CrewAI) can use.
|
|
8
|
+
> 🔗 **Live MCP server (SSE):** https://agentkit.ysiddo-ai-projects.app/sse — connect from Claude Desktop
|
|
9
|
+
> via `mcp-remote` (see [claude_desktop_config.example.json](claude_desktop_config.example.json)). On-demand backend (first call ~30–60 s).
|
|
10
|
+
|
|
11
|
+
## What It Does
|
|
12
|
+
|
|
13
|
+
- **6 MCP Tools**: `query_kpis`, `get_company_health`, `detect_kpi_anomalies`, `forecast_metric`, `list_available_metrics`, `get_executive_summary`
|
|
14
|
+
- **6 MCP Resources**: `kpi://Finance/latest` and similar for Growth, Operations, People, ESG, IT_Ops
|
|
15
|
+
- **1 Reusable Prompt**: `monthly_executive_briefing`
|
|
16
|
+
- **LangGraph 3-agent workflow** in `workflow.py`
|
|
17
|
+
- **Claude Agent SDK demo** in `demos/claude_agent_sdk_demo.py`
|
|
18
|
+
- **CrewAI demo** in `demos/crewai_demo.py`
|
|
19
|
+
- **DSPy research scaffold** in `research/dspy_experiment.py`
|
|
20
|
+
|
|
21
|
+
## Quick Start
|
|
22
|
+
|
|
23
|
+
```bash
|
|
24
|
+
python -m venv .venv && source .venv/bin/activate
|
|
25
|
+
pip install -r requirements.txt
|
|
26
|
+
cp .env.example .env # fill in keys + POSTGRES_URL
|
|
27
|
+
python mcp_server.py
|
|
28
|
+
```
|
|
29
|
+
|
|
30
|
+
## Claude Desktop Setup
|
|
31
|
+
|
|
32
|
+
Add to `~/.config/Claude/claude_desktop_config.json`:
|
|
33
|
+
|
|
34
|
+
```json
|
|
35
|
+
{
|
|
36
|
+
"mcpServers": {
|
|
37
|
+
"agentkit": {
|
|
38
|
+
"command": "python",
|
|
39
|
+
"args": ["/abs/path/to/agentkit/mcp_server.py"],
|
|
40
|
+
"env": {
|
|
41
|
+
"POSTGRES_URL": "postgresql://...",
|
|
42
|
+
"ANTHROPIC_API_KEY": "sk-ant-..."
|
|
43
|
+
}
|
|
44
|
+
}
|
|
45
|
+
}
|
|
46
|
+
}
|
|
47
|
+
```
|
|
48
|
+
|
|
49
|
+
Restart Claude Desktop, then ask:
|
|
50
|
+
- "What's our company health right now?"
|
|
51
|
+
- "Forecast revenue for the next 6 months."
|
|
52
|
+
- "Are there anomalies in the Finance KPIs?"
|
|
53
|
+
|
|
54
|
+
## LangGraph Workflow
|
|
55
|
+
|
|
56
|
+
```python
|
|
57
|
+
from workflow import analyze
|
|
58
|
+
result = analyze("What drove gross margin in Q1?")
|
|
59
|
+
print(result["report"])
|
|
60
|
+
```
|
|
61
|
+
|
|
62
|
+
## Architecture
|
|
63
|
+
|
|
64
|
+
```
|
|
65
|
+
Claude Desktop / Cursor / LangGraph
|
|
66
|
+
│
|
|
67
|
+
▼ MCP
|
|
68
|
+
┌──────────────────┐
|
|
69
|
+
│ mcp_server.py │
|
|
70
|
+
│ 6 tools │
|
|
71
|
+
│ 6 resources │
|
|
72
|
+
│ 1 prompt │
|
|
73
|
+
└────────┬─────────┘
|
|
74
|
+
│
|
|
75
|
+
┌──────────────┼──────────────┐
|
|
76
|
+
▼ ▼ ▼
|
|
77
|
+
pg_store insights forecasting
|
|
78
|
+
(KPIs) (health, (LinearReg
|
|
79
|
+
anomalies) + Monte Carlo)
|
|
80
|
+
```
|
|
81
|
+
|
|
82
|
+
## License
|
|
83
|
+
|
|
84
|
+
MIT
|
|
85
|
+
|
|
86
|
+
## ⚖️ License & Enterprise Use (Dual-License)
|
|
87
|
+
|
|
88
|
+
This project is open-source under the **AGPL-3.0 License**. It is completely free for researchers, students, and open-source hobbyists.
|
|
89
|
+
|
|
90
|
+
> **Commercial Use:** The AGPLv3 license requires that any proprietary network service (SaaS, internal corporate tools) that uses or modifies this code must also open-source its entire backend.
|
|
91
|
+
>
|
|
92
|
+
> If you wish to use this framework in a closed-source commercial environment, or require **Enterprise features** (SSO, Active Directory, Custom VPC Deployment, Strict RBAC), you must obtain a **Commercial License**.
|
|
93
|
+
> Please reach out to discuss commercial licensing and integration consulting.
|
|
94
|
+
|
|
95
|
+
## 📡 Anonymous Telemetry
|
|
96
|
+
This project collects anonymous, GDPR-compliant startup pings to help the author understand usage volume and prioritize development.
|
|
97
|
+
* **What is collected:** Only the project name and a "startup" event timestamp. No PII, no API keys, no user data.
|
|
98
|
+
* **How to disable:** We respect your privacy. To opt-out, simply set `TELEMETRY_OPT_OUT=true` in your `.env` file.
|
|
99
|
+
|
|
100
|
+
|
|
101
|
+
<!-- Scarf Analytics Pixel -->
|
|
102
|
+
<img referrerpolicy="no-referrer-when-downgrade" src="https://static.scarf.sh/a.png?x-pxid=agentkit-yacine-ai-projects" />
|
|
@@ -0,0 +1,117 @@
|
|
|
1
|
+
Metadata-Version: 2.4
|
|
2
|
+
Name: agentkit-mcp
|
|
3
|
+
Version: 0.1.0
|
|
4
|
+
Summary: AgentKit MCP Server — Business Intelligence tools for Claude/Cursor agents.
|
|
5
|
+
Author: Yacine
|
|
6
|
+
License: AGPL-3.0
|
|
7
|
+
Classifier: License :: OSI Approved :: GNU Affero General Public License v3 or later (AGPLv3+)
|
|
8
|
+
Requires-Python: >=3.10
|
|
9
|
+
Description-Content-Type: text/markdown
|
|
10
|
+
License-File: LICENSE
|
|
11
|
+
Requires-Dist: fastmcp
|
|
12
|
+
Requires-Dist: uvicorn
|
|
13
|
+
Requires-Dist: python-dotenv
|
|
14
|
+
Dynamic: license-file
|
|
15
|
+
|
|
16
|
+
# AgentKit — MCP Server for Business Intelligence Agents
|
|
17
|
+
|
|
18
|
+
[](https://github.com/Yacine-ai-tech/AgentKit/actions/workflows/ci.yml) [](LICENSE)
|
|
19
|
+
|
|
20
|
+
Expose enterprise KPIs, health scores, forecasting, and anomaly detection as
|
|
21
|
+
tools, resources, and prompt templates that any MCP-compatible agent (Claude
|
|
22
|
+
Desktop, Cursor, LangGraph, Claude Agent SDK, CrewAI) can use.
|
|
23
|
+
> 🔗 **Live MCP server (SSE):** https://agentkit.ysiddo-ai-projects.app/sse — connect from Claude Desktop
|
|
24
|
+
> via `mcp-remote` (see [claude_desktop_config.example.json](claude_desktop_config.example.json)). On-demand backend (first call ~30–60 s).
|
|
25
|
+
|
|
26
|
+
## What It Does
|
|
27
|
+
|
|
28
|
+
- **6 MCP Tools**: `query_kpis`, `get_company_health`, `detect_kpi_anomalies`, `forecast_metric`, `list_available_metrics`, `get_executive_summary`
|
|
29
|
+
- **6 MCP Resources**: `kpi://Finance/latest` and similar for Growth, Operations, People, ESG, IT_Ops
|
|
30
|
+
- **1 Reusable Prompt**: `monthly_executive_briefing`
|
|
31
|
+
- **LangGraph 3-agent workflow** in `workflow.py`
|
|
32
|
+
- **Claude Agent SDK demo** in `demos/claude_agent_sdk_demo.py`
|
|
33
|
+
- **CrewAI demo** in `demos/crewai_demo.py`
|
|
34
|
+
- **DSPy research scaffold** in `research/dspy_experiment.py`
|
|
35
|
+
|
|
36
|
+
## Quick Start
|
|
37
|
+
|
|
38
|
+
```bash
|
|
39
|
+
python -m venv .venv && source .venv/bin/activate
|
|
40
|
+
pip install -r requirements.txt
|
|
41
|
+
cp .env.example .env # fill in keys + POSTGRES_URL
|
|
42
|
+
python mcp_server.py
|
|
43
|
+
```
|
|
44
|
+
|
|
45
|
+
## Claude Desktop Setup
|
|
46
|
+
|
|
47
|
+
Add to `~/.config/Claude/claude_desktop_config.json`:
|
|
48
|
+
|
|
49
|
+
```json
|
|
50
|
+
{
|
|
51
|
+
"mcpServers": {
|
|
52
|
+
"agentkit": {
|
|
53
|
+
"command": "python",
|
|
54
|
+
"args": ["/abs/path/to/agentkit/mcp_server.py"],
|
|
55
|
+
"env": {
|
|
56
|
+
"POSTGRES_URL": "postgresql://...",
|
|
57
|
+
"ANTHROPIC_API_KEY": "sk-ant-..."
|
|
58
|
+
}
|
|
59
|
+
}
|
|
60
|
+
}
|
|
61
|
+
}
|
|
62
|
+
```
|
|
63
|
+
|
|
64
|
+
Restart Claude Desktop, then ask:
|
|
65
|
+
- "What's our company health right now?"
|
|
66
|
+
- "Forecast revenue for the next 6 months."
|
|
67
|
+
- "Are there anomalies in the Finance KPIs?"
|
|
68
|
+
|
|
69
|
+
## LangGraph Workflow
|
|
70
|
+
|
|
71
|
+
```python
|
|
72
|
+
from workflow import analyze
|
|
73
|
+
result = analyze("What drove gross margin in Q1?")
|
|
74
|
+
print(result["report"])
|
|
75
|
+
```
|
|
76
|
+
|
|
77
|
+
## Architecture
|
|
78
|
+
|
|
79
|
+
```
|
|
80
|
+
Claude Desktop / Cursor / LangGraph
|
|
81
|
+
│
|
|
82
|
+
▼ MCP
|
|
83
|
+
┌──────────────────┐
|
|
84
|
+
│ mcp_server.py │
|
|
85
|
+
│ 6 tools │
|
|
86
|
+
│ 6 resources │
|
|
87
|
+
│ 1 prompt │
|
|
88
|
+
└────────┬─────────┘
|
|
89
|
+
│
|
|
90
|
+
┌──────────────┼──────────────┐
|
|
91
|
+
▼ ▼ ▼
|
|
92
|
+
pg_store insights forecasting
|
|
93
|
+
(KPIs) (health, (LinearReg
|
|
94
|
+
anomalies) + Monte Carlo)
|
|
95
|
+
```
|
|
96
|
+
|
|
97
|
+
## License
|
|
98
|
+
|
|
99
|
+
MIT
|
|
100
|
+
|
|
101
|
+
## ⚖️ License & Enterprise Use (Dual-License)
|
|
102
|
+
|
|
103
|
+
This project is open-source under the **AGPL-3.0 License**. It is completely free for researchers, students, and open-source hobbyists.
|
|
104
|
+
|
|
105
|
+
> **Commercial Use:** The AGPLv3 license requires that any proprietary network service (SaaS, internal corporate tools) that uses or modifies this code must also open-source its entire backend.
|
|
106
|
+
>
|
|
107
|
+
> If you wish to use this framework in a closed-source commercial environment, or require **Enterprise features** (SSO, Active Directory, Custom VPC Deployment, Strict RBAC), you must obtain a **Commercial License**.
|
|
108
|
+
> Please reach out to discuss commercial licensing and integration consulting.
|
|
109
|
+
|
|
110
|
+
## 📡 Anonymous Telemetry
|
|
111
|
+
This project collects anonymous, GDPR-compliant startup pings to help the author understand usage volume and prioritize development.
|
|
112
|
+
* **What is collected:** Only the project name and a "startup" event timestamp. No PII, no API keys, no user data.
|
|
113
|
+
* **How to disable:** We respect your privacy. To opt-out, simply set `TELEMETRY_OPT_OUT=true` in your `.env` file.
|
|
114
|
+
|
|
115
|
+
|
|
116
|
+
<!-- Scarf Analytics Pixel -->
|
|
117
|
+
<img referrerpolicy="no-referrer-when-downgrade" src="https://static.scarf.sh/a.png?x-pxid=agentkit-yacine-ai-projects" />
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
LICENSE
|
|
2
|
+
README.md
|
|
3
|
+
auth_middleware.py
|
|
4
|
+
mcp_server.py
|
|
5
|
+
pyproject.toml
|
|
6
|
+
web_app.py
|
|
7
|
+
agentkit_mcp.egg-info/PKG-INFO
|
|
8
|
+
agentkit_mcp.egg-info/SOURCES.txt
|
|
9
|
+
agentkit_mcp.egg-info/dependency_links.txt
|
|
10
|
+
agentkit_mcp.egg-info/requires.txt
|
|
11
|
+
agentkit_mcp.egg-info/top_level.txt
|
|
12
|
+
tests/test_auth_middleware.py
|
|
13
|
+
tests/test_live_workflow.py
|
|
14
|
+
tests/test_mcp_protocol.py
|
|
15
|
+
tests/test_mcp_tools.py
|
|
16
|
+
tests/test_real_data_apis.py
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
|