Cisco RADKit MCP Server

Cisco RADKit MCP Server

Enables interaction with Cisco network devices through the RADKit SDK, allowing users to discover device inventory, fetch device attributes, and execute CLI commands via natural language.

Category
访问服务器

README

<h1 align="center">✨🤖 Cisco RADKit MCP Server<br /><br /> <div align="center"> <img src="images/radkit_mcp_logo.png" width="500"/> </div>

<div align="center"> <img src="https://img.shields.io/badge/Cisco-RADKit-049fd9?style=flat-square&logo=cisco&logoColor=white" alt="Cisco RADKit"> <img src="https://img.shields.io/badge/MCP-Protocol-000000?style=flat-square&logo=anthropic&logoColor=white" alt="MCP"> <img src="https://img.shields.io/badge/FastMCP-Library-7B2CBF?style=flat-square&logo=python&logoColor=white" alt="FastMCP"> <img src="https://img.shields.io/badge/Python-3.10+-3776AB?style=flat-square&logo=python&logoColor=white" alt="Python"> </div> <div align="center"> <a href="https://deepwiki.com/CiscoDevNet/radkit-mcp-server-community"><img src="https://deepwiki.com/badge.svg" alt="Ask DeepWiki"></a> <a href="https://www.youtube.com/watch?v=lsj05owx2Q0"> <img src="https://img.shields.io/badge/Watch%20Hack%20The%20RADKit!%20Episode%20now-FF0000?style=flat-square&logo=youtube&logoColor=white" alt="Watch on YouTube"> </a> </div>

</h1>

<div align="center"> A <strong>stand-alone MCP server</strong> built with <a href="https://github.com/modelcontextprotocol/fastmcp"><strong>FastMCP</strong></a> that exposes key functionalities of the <a href="https://radkit.cisco.com/"><strong>Cisco RADKit</strong></a> SDK as MCP tools.
</br>It is designed to be connected to any <strong>MCP client</strong> and <strong>LLM</strong> of your choice, enabling intelligent interaction with network devices through Cisco RADKit. <br /><br /> </div>

Disclaimer: This MCP Server is not an official Cisco product. It was developed for experimentation and learning purposes.

🚀 Overview

This MCP server acts as a lightweight middleware layer between the Cisco RADKit service and an MCP-compatible client.
It allows the LLM to inspect and interact with devices onboarded in the RADKit inventory, fetch device attributes, and even execute CLI commands — all through structured MCP tools.

⚙️ Features

  • 🔌 Plug-and-play MCP server — works with any MCP-compatible client.
  • 🔍 Inventory discovery — list all onboarded network devices.
  • 🧠 Device introspection — fetch device attributes and capabilities.
  • 🖥️ Command execution — run CLI commands on network devices.
  • 📦 Fully type-hinted tools for clarity and extensibility.

📚 Included libraries

All required libraries are mentioned in the file requirements.txt, including their fixed versions.

  • cisco_radkit_client==1.9.0
  • cisco_radkit_common==1.9.0
  • cisco_radkit_service==1.9.0
  • fastmcp==2.13.1

🧰 Exposed MCP Tools

Tool Name Description Inputs Returns Use Case
get_device_inventory_names() Returns a string containing the names of devices onboarded in the Cisco RADKit inventory. None str: List of onboarded devices (e.g. {"p0-2e", "p1-2e"}) Use this first when the user asks about "devices", "network", or "all devices".
get_device_attributes(target_device: str) Returns detailed information about a specific device in JSON format. target_device (str): Target device name. str: JSON with attributes including name, host, type, configs, SNMP/NETCONF status, capabilities, etc. Use this when the user asks about a specific device.
exec_cli_commands_in_device(target_device: str, cli_command: str) Executes a CLI command or commands on a target device and returns the raw text result. target_device (str): Device name.<br>cli_commands ([str]): CLI command or commands to execute. str: Raw output of the executed command. Use this only if info is unavailable in get_device_attributes() or when explicitly asked to “run” or “execute” a command.

🧩 Requirements

  • Python 3.10+
  • Active Cisco RADKit service
  • At least one read-only/RW user onboarded in the Cisco RADKit service

For more information about setting up a Cisco RADKit service, visit this link.

🛠️ Installation

Clone the repository in your deployment environment.

git clone https://github.com/ponchotitlan/radkit-mcp-server.git
cd radkit-mcp-server

⚙️ Setup

Execute the included assistant script in a terminal based on your type of host OS:

🐧🍎 Linux/MacOS:

chmod +x setup.sh
bash setup.sh

🪟 Windows:

setup.bat

The assistant will first create a virtual environment folder radkit-mcp-server/.venv/ with all the python libraries required. Afterwards, it will trigger the following assistant:

╭─────────────────────────────────────────╮
│ 🚀 Cisco RADKit MCP Server Utility Tool │
╰─────────────────────────────────────────╯
? Choose an option: (Use arrow keys)
 » 1. 👾 Onboard user to non-interactive Cisco RADKit authentication
   2. 📚 Generate .env file for Cisco RADKit MCP server
   Exit

👾 1. Non-interactive Cisco RADKit authentication setup

The MCP server makes use of certificate login to avoid asking for Web UI authentication every time a tool is used. For that, the certificates need to be generated in the host. Select the first option and follow the instructions.

╭─────────────────────────────────────────╮
│ 🚀 Cisco RADKit MCP Server Utility Tool │
╰─────────────────────────────────────────╯
? Choose an option: 1. 👾 Onboard user to non-interactive Cisco RADKit authentication
? Enter Cisco RADKit username: ponchotitlan@cisco.com
╭───────────────────────────────────────────────────────────────────╮
│ Starting Cisco RADKit onboarding for user: ponchotitlan@cisco.com │
╰───────────────────────────────────────────────────────────────────╯

A browser window was opened to continue the authentication process. Please follow the instructions there.

Authentication result received.
New private key password: ***********
Confirm: ***********
The private key is a very sensitive piece of information. DO NOT SHARE UNDER ANY CIRCUMSTANCES, and use a very strong passphrase. Please consult the documentation for more details.
<frozen radkit_client.async_.client>:891: UserWarning: The private key is a very sensitive piece of information. DO NOT SHARE UNDER ANY CIRCUMSTANCES, and use a very strong passphrase. Please consult the documentation for more details.

Take note of the password provided, as it will be needed for the 2nd option!</br> Now, select the second option:

📚 2. Generate .env file

Provide the information requested. The password is the one just setup in the first option.

? Choose an option: 2. 📚 Generate .env file for Cisco RADKit MCP server
╭───────────────────────────────────────────────────────────────────────────────╮
│ Warning: Make sure Cisco RADKit certificates for this username already exist. │
│ If not, run the onboarding process first using option 1.                      │
╰───────────────────────────────────────────────────────────────────────────────╯
? Enter Cisco RADKit username: ponchotitlan@cisco.com
? Enter Cisco RADKit service code: aaaa-bbbb-cccc
? Enter non-interactive authentication password: ***********

This MCP server supports both stdio and https transport methods. When prompted, choose the one that you would like to use:

? Select MCP transport mode: (Use arrow keys)
 » stdio
   https

Default choice is stdio. Otherwise, if https is selected, you will be prompted for the following information:

? Select MCP transport mode: https
? Enter MCP host: 0.0.0.0
? Enter MCP port: 8000
╭──────────────────────────────────────╮
│ ✅ .env file generated successfully! │
│ Saved as .env                        │
╰──────────────────────────────────────╯

The file radkit-mcp-server/.env is generated with environment variables that the MCP Server needs.</br></br> ✅ Your MCP server is ready for use!

⚡️ Usage example: Claude Desktop

The Claude Desktop application provides an environment which integrates the Claude LLM and a rich MCP Client compatible with this MCP Server.

To get started, download the Claude Desktop app for your host OS, and choose the LLM usage plan that best fits your needs.

Afterwards, edit the radkit-mcp-server/claude_desktop_config.json file included in this repository to point to the absolute paths of your .venv and mcp_server.py files:

{
  "mcpServers": {
    "radkit-mcp-server": {
      "command": "/Users/ponchotitlan/Documents/radkit-mcp-server-community/.venv/bin/python",
      "args": [
        "/Users/ponchotitlan/Documents/radkit-mcp-server-community/mcp_server.py"
      ],
      "description": "Cisco RADKit MCP Server - Community"
    }
  }
}

Then, copy this file to the location of your Claude Desktop application' configurations. The directory varies depending on your host OS:

🍎 MacOS:

cp claude_desktop_config.json ~/Library/Application\ Support/Claude 

🪟 Windows:

cp claude_desktop_config.json %APPDATA%\Claude\

🐧 Linux:

cp claude_desktop_config.json ~/.config/Claude/

Now, restart your Claude Desktop app. Afterwards, if you navigate to Configurations/Developer/, you should see the MCP Server up and running:

<div align="center"> <img src="images/claude_mcp_okAsset 1.png" width="500"/> </div>

✨ Prompt examples

📚 Show the inventory of your Cisco RADKit service</br> One of the MCP server tools provides a list of device names. <div align="center"> <img src="images/radkit_mcp_demo_1_inventory.gif"/> </div>

</br>🎰 Ask specific questions about a device</br> Another MCP server tool provides information of the device if available directly in the Cisco RADKit SDK. <div align="center"> <img src="images/radkit_demo_2_device_type.gif"/> </div>

</br>Otherwise, a command is executed in the device via a MCP server tool to get the information required. <div align="center"> <img src="images/radkit_demo_3_interfaces.gif"/> </div>

</br>🗺️ Complex querying using networking data</br> The LLM can use the information from multiple data network queries to build, for example, a topology diagram. <div align="center"> <img src="images/radkit_demo_4_topology.gif"/> </div>

</br>This diagram can be later refined with more information from the network as required. <div align="center"> <img src="images/radit_demo_5_enhanced_topology.gif"/> </div>

</br>⬇️ Push configurations</br> Not everything is query information! If the Cisco RADKit user onboarded in the MCP server is enabled with Write privileges, commit operations can take place. <div align="center"> <img src="images/radkit_demo_6_config_commit.gif"/> </div>

</br>These are just some examples of what can be done with this MCP server!


<div align="center"><br /> Made with ☕️ by Poncho Sandoval - <code>Developer Advocate 🥑 @ DevNet - Cisco Systems 🇵🇹</code><br /><br /> <a href="mailto:alfsando@cisco.com?subject=Question%20about%20[RADKIT%20MCP]&body=Hello,%0A%0AI%20have%20a%20question%20regarding%20your%20project.%0A%0AThanks!"> <img src="https://img.shields.io/badge/Contact%20me!-blue?style=flat&logo=gmail&labelColor=555555&logoColor=white" alt="Contact Me via Email!"/> </a> <a href="https://github.com/CiscoDevNet/radkit-mcp-server-community/issues/new"> <img src="https://img.shields.io/badge/Open%20Issue-2088FF?style=flat&logo=github&labelColor=555555&logoColor=white" alt="Open an Issue"/> </a> <a href="https://github.com/ponchotitlan/radkit-mcp-server/fork"> <img src="https://img.shields.io/badge/Fork%20Repository-000000?style=flat&logo=github&labelColor=555555&logoColor=white" alt="Fork Repository"/> </a> </div>

推荐服务器

Baidu Map

Baidu Map

百度地图核心API现已全面兼容MCP协议,是国内首家兼容MCP协议的地图服务商。

官方
精选
JavaScript
Playwright MCP Server

Playwright MCP Server

一个模型上下文协议服务器,它使大型语言模型能够通过结构化的可访问性快照与网页进行交互,而无需视觉模型或屏幕截图。

官方
精选
TypeScript
Magic Component Platform (MCP)

Magic Component Platform (MCP)

一个由人工智能驱动的工具,可以从自然语言描述生成现代化的用户界面组件,并与流行的集成开发环境(IDE)集成,从而简化用户界面开发流程。

官方
精选
本地
TypeScript
Audiense Insights MCP Server

Audiense Insights MCP Server

通过模型上下文协议启用与 Audiense Insights 账户的交互,从而促进营销洞察和受众数据的提取和分析,包括人口统计信息、行为和影响者互动。

官方
精选
本地
TypeScript
VeyraX

VeyraX

一个单一的 MCP 工具,连接你所有喜爱的工具:Gmail、日历以及其他 40 多个工具。

官方
精选
本地
graphlit-mcp-server

graphlit-mcp-server

模型上下文协议 (MCP) 服务器实现了 MCP 客户端与 Graphlit 服务之间的集成。 除了网络爬取之外,还可以将任何内容(从 Slack 到 Gmail 再到播客订阅源)导入到 Graphlit 项目中,然后从 MCP 客户端检索相关内容。

官方
精选
TypeScript
Kagi MCP Server

Kagi MCP Server

一个 MCP 服务器,集成了 Kagi 搜索功能和 Claude AI,使 Claude 能够在回答需要最新信息的问题时执行实时网络搜索。

官方
精选
Python
e2b-mcp-server

e2b-mcp-server

使用 MCP 通过 e2b 运行代码。

官方
精选
Neon MCP Server

Neon MCP Server

用于与 Neon 管理 API 和数据库交互的 MCP 服务器

官方
精选
Exa MCP Server

Exa MCP Server

模型上下文协议(MCP)服务器允许像 Claude 这样的 AI 助手使用 Exa AI 搜索 API 进行网络搜索。这种设置允许 AI 模型以安全和受控的方式获取实时的网络信息。

官方
精选