Azure Topology Graph MCP Server
Enables exploration and analysis of Azure infrastructure by querying Azure Resource Graph, ARM, and Network Watcher APIs to create interactive topology maps. Provides tools for searching resources, discovering relationships, finding connectivity paths, and visualizing complete Azure infrastructure topologies.
README
Azure Topology Graph MCP Server
A Model Context Protocol (MCP) server that queries Azure Resource Graph, ARM, and Network Watcher to create topology maps that Cursor can explore.
Features
- Resource Inventory: Query resources across multiple subscriptions using Azure Resource Graph
- Detailed Configuration: Pull detailed configuration for specific resources using ARM APIs
- Network Topology: Build network topology using Azure Network Watcher
- Graph Representation: Represent infrastructure as nodes and edges
- MCP Tools: Expose powerful tools for searching, exploring, and analyzing Azure infrastructure
Available Tools
search_resources: Search Azure resources by name, type, or other propertiesget_resource: Get detailed information about a specific Azure resourceget_neighbors: Get resources connected to a specific resourcefind_path: Find connection paths between two Azure resourcesexport_topology: Export the complete topology graph (JSON or summary)refresh_topology: Refresh the topology cache by re-querying Azure
Prerequisites
- Azure Service Principal: You need an Azure service principal with appropriate permissions
- Azure Permissions: The service principal needs at least
Readeraccess to the subscriptions and resource groups you want to query - Node.js: Version 16 or later
Setup
1. Clone and Install Dependencies
git clone <your-repo-url>
cd azure_mcp_graph
npm install
2. Configure Azure Credentials
Create a .env file in the project root:
AZURE_TENANT_ID=xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx
AZURE_CLIENT_ID=xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx
AZURE_CLIENT_SECRET=your-service-principal-secret
SUBSCRIPTION_IDS=sub-id-1,sub-id-2,sub-id-3
DEFAULT_RG=MyWorkloadRG
DEFAULT_REGION=eastus
NETWORK_WATCHER_NAME=NetworkWatcher_eastus
3. Build the Server
npm run build
4. Configure Cursor MCP
Add the following to your Cursor MCP configuration file (usually ~/.cursor/config.json):
{
"mcpServers": {
"azure-graph": {
"command": "node",
"args": ["/path/to/azure_mcp_graph/dist/server.js"],
"env": {
"AZURE_TENANT_ID": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
"AZURE_CLIENT_ID": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
"AZURE_CLIENT_SECRET": "your-service-principal-secret",
"SUBSCRIPTION_IDS": "sub-id-1,sub-id-2,sub-id-3",
"DEFAULT_RG": "MyWorkloadRG",
"DEFAULT_REGION": "eastus",
"NETWORK_WATCHER_NAME": "NetworkWatcher_eastus"
}
}
}
}
Usage Examples
Once configured, you can use the following commands in Cursor:
Search for Resources
Search for all virtual machines in my infrastructure
Explore Resource Relationships
Show me all resources connected to my VM named "web-server-01"
Find Connectivity Paths
Find the network path between my application gateway and backend VMs
Export Topology
Export a summary of my entire Azure topology
Development
Run in Development Mode
npm run dev
Build
npm run build
Clean Build Output
npm run clean
Architecture
The server consists of several key components:
- Azure Clients: Interfaces with Azure Resource Graph, ARM, and Network Watcher APIs
- Graph Builder: Constructs topology graphs from Azure resource data
- Relationship Analyzer: Identifies and builds relationships between resources
- MCP Tools: Exposes functionality through the Model Context Protocol
- Caching: Intelligent caching with configurable TTL for performance
Troubleshooting
Authentication Issues
- Ensure your service principal has the correct permissions
- Verify your Azure credentials are correctly configured
- Check that your subscription IDs are valid and accessible
Performance Issues
- The server caches topology data for 5 minutes by default
- Use
refresh_topologytool to force a cache refresh - Consider filtering by resource type for large subscriptions
Network Issues
- Ensure your environment has access to Azure APIs
- Check firewall and proxy settings if running behind corporate networks
Contributing
- Fork the repository
- Create a feature branch
- Make your changes
- Test thoroughly
- Submit a pull request
License
This project is licensed under the ISC License - see the package.json file for details.
推荐服务器
Baidu Map
百度地图核心API现已全面兼容MCP协议,是国内首家兼容MCP协议的地图服务商。
Playwright MCP Server
一个模型上下文协议服务器,它使大型语言模型能够通过结构化的可访问性快照与网页进行交互,而无需视觉模型或屏幕截图。
Magic Component Platform (MCP)
一个由人工智能驱动的工具,可以从自然语言描述生成现代化的用户界面组件,并与流行的集成开发环境(IDE)集成,从而简化用户界面开发流程。
Audiense Insights MCP Server
通过模型上下文协议启用与 Audiense Insights 账户的交互,从而促进营销洞察和受众数据的提取和分析,包括人口统计信息、行为和影响者互动。
VeyraX
一个单一的 MCP 工具,连接你所有喜爱的工具:Gmail、日历以及其他 40 多个工具。
graphlit-mcp-server
模型上下文协议 (MCP) 服务器实现了 MCP 客户端与 Graphlit 服务之间的集成。 除了网络爬取之外,还可以将任何内容(从 Slack 到 Gmail 再到播客订阅源)导入到 Graphlit 项目中,然后从 MCP 客户端检索相关内容。
Kagi MCP Server
一个 MCP 服务器,集成了 Kagi 搜索功能和 Claude AI,使 Claude 能够在回答需要最新信息的问题时执行实时网络搜索。
e2b-mcp-server
使用 MCP 通过 e2b 运行代码。
Neon MCP Server
用于与 Neon 管理 API 和数据库交互的 MCP 服务器
Exa MCP Server
模型上下文协议(MCP)服务器允许像 Claude 这样的 AI 助手使用 Exa AI 搜索 API 进行网络搜索。这种设置允许 AI 模型以安全和受控的方式获取实时的网络信息。