AyushRatan1/MCP-Server-for-Excel-Integration
If you are the rightful owner of MCP-Server-for-Excel-Integration and would like to certify it and/or have it hosted online, please leave a comment on the right or send an email to henry@mcphub.com.
A simple MCP server built with FastAPI that processes numerical inputs by doubling them, with support for session management and API key authentication.
Model Context Protocol (MCP) Server
A simple MCP server built with FastAPI that processes numerical inputs by doubling them, with support for session management and API key authentication.
Setup
- Install the required dependencies:
pip install -r requirements.txt
- Start the server:
uvicorn main:app --reload
The server will be running at http://localhost:8000
API Endpoints
POST /mcp/process
Processes a list of numerical inputs by doubling each value.
Request Body:
{
"inputs": [1.0, 2.0, 3.0]
}
Headers (optional):
session_id
: To maintain state between requestsapi_key
: For authentication (demo key: "demo_key")
Response:
{
"outputs": [2.0, 4.0, 6.0],
"session_id": "generated-session-id"
}
Excel VBA Integration
You can use the following VBA code to integrate with the MCP server from Excel:
Sub CallMCPServer()
' Define the input range
Dim inputRange As Range
Set inputRange = Range("A1:A3")
' Create an HTTP request
Dim request As Object
Set request = CreateObject("MSXML2.XMLHTTP")
' Prepare JSON data
Dim jsonData As String
jsonData = "{""inputs"": ["
Dim cell As Range
Dim first As Boolean
first = True
For Each cell In inputRange
If Not first Then
jsonData = jsonData & ", "
End If
jsonData = jsonData & cell.Value
first = False
Next cell
jsonData = jsonData & "]}"
' Send the request
request.Open "POST", "http://localhost:8000/mcp/process", False
request.setRequestHeader "Content-Type", "application/json"
request.send jsonData
' Handle the response
If request.Status = 200 Then
Dim response As Object
Set response = ParseJson(request.responseText)
' Display the outputs
Dim outputStr As String
outputStr = "Processed outputs: " & vbCrLf
Dim i As Integer
For i = 1 To response.Item("outputs").Count
outputStr = outputStr & response.Item("outputs").Item(i) & vbCrLf
Next i
MsgBox outputStr, vbInformation, "MCP Server Response"
' Optionally store the session ID for future requests
Dim sessionId As String
sessionId = response.Item("session_id")
Else
MsgBox "Error: " & request.Status & " - " & request.responseText, vbExclamation
End If
End Sub
Function ParseJson(jsonString As String) As Object
' This is a simplified JSON parser for demo purposes
' For production use, consider a proper JSON library
Dim ScriptEngine As Object
Set ScriptEngine = CreateObject("ScriptControl")
ScriptEngine.Language = "JScript"
Dim JsonCode As String
JsonCode = "JSON.parse('" & Replace(jsonString, "'", "\'") & "');"
Set ParseJson = ScriptEngine.Eval(JsonCode)
End Function
For modern Excel with Office Scripts, you can use JavaScript/TypeScript with fetch API to make HTTP requests to the MCP server.
Notes
- The server includes CORS middleware to allow cross-origin requests from web-based Excel clients
- Session state is stored in memory and will be lost if the server restarts
- For production use, consider using a database for session storage and proper authentication