suprema-biostar-mcp 1.0.1__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.
- biostar_x_mcp_server/__init__.py +25 -0
- biostar_x_mcp_server/__main__.py +15 -0
- biostar_x_mcp_server/config.py +87 -0
- biostar_x_mcp_server/handlers/__init__.py +35 -0
- biostar_x_mcp_server/handlers/access_handler.py +2162 -0
- biostar_x_mcp_server/handlers/audit_handler.py +489 -0
- biostar_x_mcp_server/handlers/auth_handler.py +216 -0
- biostar_x_mcp_server/handlers/base_handler.py +228 -0
- biostar_x_mcp_server/handlers/card_handler.py +746 -0
- biostar_x_mcp_server/handlers/device_handler.py +4344 -0
- biostar_x_mcp_server/handlers/door_handler.py +3969 -0
- biostar_x_mcp_server/handlers/event_handler.py +1331 -0
- biostar_x_mcp_server/handlers/file_handler.py +212 -0
- biostar_x_mcp_server/handlers/help_web_handler.py +379 -0
- biostar_x_mcp_server/handlers/log_handler.py +1051 -0
- biostar_x_mcp_server/handlers/navigation_handler.py +109 -0
- biostar_x_mcp_server/handlers/occupancy_handler.py +541 -0
- biostar_x_mcp_server/handlers/user_handler.py +3568 -0
- biostar_x_mcp_server/schemas/__init__.py +21 -0
- biostar_x_mcp_server/schemas/access.py +158 -0
- biostar_x_mcp_server/schemas/audit.py +73 -0
- biostar_x_mcp_server/schemas/auth.py +24 -0
- biostar_x_mcp_server/schemas/cards.py +128 -0
- biostar_x_mcp_server/schemas/devices.py +496 -0
- biostar_x_mcp_server/schemas/doors.py +306 -0
- biostar_x_mcp_server/schemas/events.py +104 -0
- biostar_x_mcp_server/schemas/files.py +7 -0
- biostar_x_mcp_server/schemas/help.py +29 -0
- biostar_x_mcp_server/schemas/logs.py +33 -0
- biostar_x_mcp_server/schemas/occupancy.py +19 -0
- biostar_x_mcp_server/schemas/tool_response.py +29 -0
- biostar_x_mcp_server/schemas/users.py +166 -0
- biostar_x_mcp_server/server.py +335 -0
- biostar_x_mcp_server/session.py +221 -0
- biostar_x_mcp_server/tool_manager.py +172 -0
- biostar_x_mcp_server/tools/__init__.py +45 -0
- biostar_x_mcp_server/tools/access.py +510 -0
- biostar_x_mcp_server/tools/audit.py +227 -0
- biostar_x_mcp_server/tools/auth.py +59 -0
- biostar_x_mcp_server/tools/cards.py +269 -0
- biostar_x_mcp_server/tools/categories.py +197 -0
- biostar_x_mcp_server/tools/devices.py +1552 -0
- biostar_x_mcp_server/tools/doors.py +865 -0
- biostar_x_mcp_server/tools/events.py +305 -0
- biostar_x_mcp_server/tools/files.py +28 -0
- biostar_x_mcp_server/tools/help.py +80 -0
- biostar_x_mcp_server/tools/logs.py +123 -0
- biostar_x_mcp_server/tools/navigation.py +89 -0
- biostar_x_mcp_server/tools/occupancy.py +91 -0
- biostar_x_mcp_server/tools/users.py +1113 -0
- biostar_x_mcp_server/utils/__init__.py +31 -0
- biostar_x_mcp_server/utils/category_mapper.py +206 -0
- biostar_x_mcp_server/utils/decorators.py +101 -0
- biostar_x_mcp_server/utils/language_detector.py +51 -0
- biostar_x_mcp_server/utils/search.py +42 -0
- biostar_x_mcp_server/utils/timezone.py +122 -0
- suprema_biostar_mcp-1.0.1.dist-info/METADATA +163 -0
- suprema_biostar_mcp-1.0.1.dist-info/RECORD +61 -0
- suprema_biostar_mcp-1.0.1.dist-info/WHEEL +4 -0
- suprema_biostar_mcp-1.0.1.dist-info/entry_points.txt +2 -0
- suprema_biostar_mcp-1.0.1.dist-info/licenses/LICENSE +21 -0
|
@@ -0,0 +1,197 @@
|
|
|
1
|
+
"""
|
|
2
|
+
BioStar X MCP Server Tool Categories
|
|
3
|
+
Defines tool-to-category mappings for dynamic loading
|
|
4
|
+
"""
|
|
5
|
+
from typing import Dict, List
|
|
6
|
+
|
|
7
|
+
TOOL_CATEGORIES: Dict[str, List[str]] = {
|
|
8
|
+
"auth": [
|
|
9
|
+
"login",
|
|
10
|
+
"logout",
|
|
11
|
+
"get-session-info",
|
|
12
|
+
"get-server-preferences"
|
|
13
|
+
],
|
|
14
|
+
"users": [
|
|
15
|
+
"get-users",
|
|
16
|
+
"get-user",
|
|
17
|
+
"create-user",
|
|
18
|
+
"update-user",
|
|
19
|
+
"delete-user",
|
|
20
|
+
"search-users",
|
|
21
|
+
"advanced-search-users",
|
|
22
|
+
"get-user-cards",
|
|
23
|
+
"unassign-user-cards",
|
|
24
|
+
"bulk-add-users",
|
|
25
|
+
"create-user-group",
|
|
26
|
+
"get-user-groups",
|
|
27
|
+
"export-users-csv",
|
|
28
|
+
"export-non-accessed-users-csv",
|
|
29
|
+
"add-user-to-group",
|
|
30
|
+
"remove-user-from-group",
|
|
31
|
+
"bulk-edit-users",
|
|
32
|
+
"import-users-csv",
|
|
33
|
+
"import-users-csv-smart",
|
|
34
|
+
"bulk-update-users-from-file",
|
|
35
|
+
],
|
|
36
|
+
"cards": [
|
|
37
|
+
"get-card-types",
|
|
38
|
+
"check-card-availability",
|
|
39
|
+
"create-card-csn",
|
|
40
|
+
"create-card-wiegand",
|
|
41
|
+
"get-wiegand-format-presets",
|
|
42
|
+
"create-card-biostar2-qr"
|
|
43
|
+
],
|
|
44
|
+
"doors": [
|
|
45
|
+
"get-doors",
|
|
46
|
+
"get-door",
|
|
47
|
+
"create-door",
|
|
48
|
+
"update-door",
|
|
49
|
+
"delete-door",
|
|
50
|
+
"control-door",
|
|
51
|
+
"get-doors-status",
|
|
52
|
+
"get-door-groups",
|
|
53
|
+
"get-door-group",
|
|
54
|
+
"create-door-group",
|
|
55
|
+
"update-door-group",
|
|
56
|
+
"delete-door-group",
|
|
57
|
+
"add-doors-to-group",
|
|
58
|
+
"remove-doors-from-group",
|
|
59
|
+
"update-door-description",
|
|
60
|
+
"set-door-auto-mode",
|
|
61
|
+
"set-door-relock-on-close",
|
|
62
|
+
"set-door-open-duration",
|
|
63
|
+
"set-door-timed-apb",
|
|
64
|
+
"set-door-classic-apb",
|
|
65
|
+
"set-door-io",
|
|
66
|
+
"bulk-create-doors"
|
|
67
|
+
],
|
|
68
|
+
"access": [
|
|
69
|
+
"get-access-groups",
|
|
70
|
+
"get-access-group",
|
|
71
|
+
"create-access-group",
|
|
72
|
+
"update-access-group",
|
|
73
|
+
"delete-access-group",
|
|
74
|
+
"get-access-levels",
|
|
75
|
+
"get-access-level",
|
|
76
|
+
"search-access-groups",
|
|
77
|
+
"create-access-level",
|
|
78
|
+
"update-access-level",
|
|
79
|
+
"delete-access-level",
|
|
80
|
+
"add-access-level-to-group",
|
|
81
|
+
"remove-access-level-from-group"
|
|
82
|
+
],
|
|
83
|
+
"devices": [
|
|
84
|
+
"list-devices",
|
|
85
|
+
"get-device",
|
|
86
|
+
"add-device",
|
|
87
|
+
"update-device",
|
|
88
|
+
"reboot-device",
|
|
89
|
+
"get-device-status",
|
|
90
|
+
"scan-devices",
|
|
91
|
+
"tcp-search",
|
|
92
|
+
"udp-search",
|
|
93
|
+
"list-waiting-devices",
|
|
94
|
+
"add-waiting-device",
|
|
95
|
+
"bulk-add-waiting-devices",
|
|
96
|
+
"disconnect-device",
|
|
97
|
+
"remove-device",
|
|
98
|
+
"sync-device-time",
|
|
99
|
+
"clear-device-log",
|
|
100
|
+
"lock-device",
|
|
101
|
+
"unlock-device",
|
|
102
|
+
"get-device-groups",
|
|
103
|
+
"get-device-group",
|
|
104
|
+
"create-device-group",
|
|
105
|
+
"update-device-group",
|
|
106
|
+
"delete-device-group",
|
|
107
|
+
"move-device-to-group",
|
|
108
|
+
"remove-device-from-group",
|
|
109
|
+
"update-device-auth-mode",
|
|
110
|
+
"update-device-face-distance",
|
|
111
|
+
"update-device-date-type",
|
|
112
|
+
"update-device-timezone",
|
|
113
|
+
"factory-reset-device",
|
|
114
|
+
"update-device-auth-and-display",
|
|
115
|
+
"bulk-add-devices",
|
|
116
|
+
"update-device-network",
|
|
117
|
+
"update-device-serial-comm",
|
|
118
|
+
"update-device-server-comm",
|
|
119
|
+
"update-device-fingerprint",
|
|
120
|
+
"update-device-face",
|
|
121
|
+
"update-device-card-csn"
|
|
122
|
+
],
|
|
123
|
+
"events": [
|
|
124
|
+
"get-event-types",
|
|
125
|
+
"search-events",
|
|
126
|
+
"get-realtime-events",
|
|
127
|
+
"export-events-csv",
|
|
128
|
+
"get-temperature-logs",
|
|
129
|
+
"get-access-logs"
|
|
130
|
+
],
|
|
131
|
+
"audit": [
|
|
132
|
+
"audit-search",
|
|
133
|
+
"audit-search-user",
|
|
134
|
+
"audit-search-operator-level",
|
|
135
|
+
"audit-search-ip-list",
|
|
136
|
+
"audit-search-target-list",
|
|
137
|
+
"audit-csv-export"
|
|
138
|
+
],
|
|
139
|
+
"navigation": [
|
|
140
|
+
"navigate-to-page"
|
|
141
|
+
],
|
|
142
|
+
"occupancy": [
|
|
143
|
+
"get-occupancy-status",
|
|
144
|
+
"analyze-door-traffic"
|
|
145
|
+
],
|
|
146
|
+
"files": [
|
|
147
|
+
"read-uploaded-file"
|
|
148
|
+
],
|
|
149
|
+
"logs": [
|
|
150
|
+
"analyze-server-logs",
|
|
151
|
+
"get-log-file-info",
|
|
152
|
+
"read-specific-log",
|
|
153
|
+
"get-system-resources",
|
|
154
|
+
"analyze-server-status"
|
|
155
|
+
],
|
|
156
|
+
# Web-based help tools (no vector DB required)
|
|
157
|
+
"help": [
|
|
158
|
+
"search-biostar-docs",
|
|
159
|
+
"get-docs-page",
|
|
160
|
+
"get-tool-help"
|
|
161
|
+
]
|
|
162
|
+
}
|
|
163
|
+
|
|
164
|
+
# Tool descriptions for each category
|
|
165
|
+
CATEGORY_DESCRIPTIONS = {
|
|
166
|
+
"auth": "Authentication and session management tools",
|
|
167
|
+
"users": "User management tools for creating, updating, and managing users",
|
|
168
|
+
"cards": "Create and manage cards (CSN, Wiegand, QR), card types lookup, and availability checks",
|
|
169
|
+
"doors": "Door control tools for managing and operating doors",
|
|
170
|
+
"access": "Access control tools for managing permissions and access groups/levels",
|
|
171
|
+
"devices": "Device management tools for managing BioStar X devices",
|
|
172
|
+
"events": "Event and log management tools for monitoring and retrieving system events",
|
|
173
|
+
"audit": "Audit trail tools for tracking admin activities and system changes",
|
|
174
|
+
"navigation": "Frontend navigation tools for guiding users to relevant pages after operations",
|
|
175
|
+
"occupancy": "Occupancy status and traffic analysis tools",
|
|
176
|
+
"files": "File handling tools for reading and processing uploaded files (CSV, PDF, etc.)",
|
|
177
|
+
"logs": "BioStar X server log analysis and monitoring tools",
|
|
178
|
+
"help": "Documentation search from docs.supremainc.com (web-based, always up-to-date)"
|
|
179
|
+
}
|
|
180
|
+
|
|
181
|
+
|
|
182
|
+
def get_tools_for_category(category: str) -> List[str]:
|
|
183
|
+
"""Get list of tools for a specific category."""
|
|
184
|
+
return TOOL_CATEGORIES.get(category, [])
|
|
185
|
+
|
|
186
|
+
|
|
187
|
+
def get_category_for_tool(tool_name: str) -> str:
|
|
188
|
+
"""Get the category a tool belongs to."""
|
|
189
|
+
for category, tools in TOOL_CATEGORIES.items():
|
|
190
|
+
if tool_name in tools:
|
|
191
|
+
return category
|
|
192
|
+
return None
|
|
193
|
+
|
|
194
|
+
|
|
195
|
+
def get_all_categories() -> List[str]:
|
|
196
|
+
"""Get list of all available categories."""
|
|
197
|
+
return list(TOOL_CATEGORIES.keys())
|