-
Notifications
You must be signed in to change notification settings - Fork 3
Expand file tree
/
Copy pathMCPServer.py
More file actions
52 lines (42 loc) · 1.83 KB
/
MCPServer.py
File metadata and controls
52 lines (42 loc) · 1.83 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
# aiNOC - AI Network Troubleshooting Framework
# Copyright (c) 2026 Mihai Catalin Teodosiu
# Licensed under the Business Source License 1.1
"""
aiNOC MCP Server — tool registration entry point.
This module is intentionally thin. All business logic lives in:
transport/ — vendor-specific network transports (SSH, RESTCONF)
tools/ — MCP tool handler functions
core/inventory.py — device inventory (NETWORK.json)
core/settings.py — credentials and transport configuration
"""
import logging
from fastmcp import FastMCP
from core.logging_config import setup_logging
setup_logging()
log = logging.getLogger("ainoc")
from tools.protocol import get_ospf, get_bgp
from tools.routing import get_routing, get_routing_policies
from tools.operational import get_interfaces, ping, traceroute, run_show
from tools.state import get_intent, assess_risk
from tools.config import push_config
from tools.jira_tools import jira_add_comment, jira_resolve_issue
from tools.approval import request_approval, post_approval_outcome
mcp = FastMCP("mcp_automation")
mcp.tool(name="get_ospf")(get_ospf)
mcp.tool(name="get_bgp")(get_bgp)
mcp.tool(name="get_routing")(get_routing)
mcp.tool(name="get_routing_policies")(get_routing_policies)
mcp.tool(name="get_interfaces")(get_interfaces)
mcp.tool(name="ping")(ping)
mcp.tool(name="traceroute")(traceroute)
mcp.tool(name="run_show")(run_show)
mcp.tool(name="get_intent")(get_intent)
mcp.tool(name="assess_risk")(assess_risk)
mcp.tool(name="push_config")(push_config)
mcp.tool(name="jira_add_comment")(jira_add_comment)
mcp.tool(name="jira_resolve_issue")(jira_resolve_issue)
mcp.tool(name="request_approval")(request_approval)
mcp.tool(name="post_approval_outcome")(post_approval_outcome)
log.info("aiNOC MCP Server started — 15 tools registered")
if __name__ == "__main__":
mcp.run()