Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@Sage MCPFind recent research papers about machine learning interpretability"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
Sage MCP - Academic Research Server
An MCP (Model Context Protocol) server that provides LLMs with access to academic papers and periodicals for research-grounded responses.
Features
Full-text search across papers using SQLite FTS5
Topic/publication filtering for targeted research
Paper retrieval with full content for detailed analysis
Extensible database - add your own papers programmatically
Tools Available
Tool | Description |
| Semantic/keyword search across all papers |
| Retrieve full paper content by ID |
| Browse available research topics |
| Browse available journals/sources |
| Filter papers by topic |
| Filter papers by journal |
| Add new papers to the database |
Quick Start (Local Setup)
Prerequisites
Node.js 18+ (recommended: 20 LTS)
npm 9+
1. Clone/Download and Install
cd C:\AIapps\SageMCP # or your chosen directory
npm install
npm run build2. Seed the Database
# Option A: Sample papers (10 ML/AI papers)
npm run seed
# Option B: Import from XML (if you have papers_database.xml)
npm run import-xml3. Verify Installation
npm start
# Should output: "Sage MCP Server running on stdio"
# Press Ctrl+C to stopConnecting to MCP Clients
Claude Desktop (Windows)
Locate config file:
%APPDATA%\Claude\claude_desktop_config.jsonUsually:
C:\Users\<YourName>\AppData\Roaming\Claude\claude_desktop_config.jsonEdit the config (create if doesn't exist):
{ "mcpServers": { "sage": { "command": "node", "args": ["C:/AIapps/SageMCP/dist/index.js"] } } }Restart Claude Desktop completely (quit from system tray, reopen)
Verify connection: Look for the hammer 🔨 icon in Claude's chat input - click it to see available tools
Claude Desktop (macOS)
Config location:
~/Library/Application Support/Claude/claude_desktop_config.jsonConfig content:
{ "mcpServers": { "sage": { "command": "node", "args": ["/Users/<you>/path/to/SageMCP/dist/index.js"] } } }
Windsurf / Cascade
Add to your MCP settings (Settings → MCP Servers):
{
"sage": {
"command": "node",
"args": ["C:/AIapps/SageMCP/dist/index.js"]
}
}Cline (VS Code Extension)
Open VS Code settings
Search for "Cline MCP"
Add server configuration:
{ "sage": { "command": "node", "args": ["C:/AIapps/SageMCP/dist/index.js"] } }
Custom MCP Client (Programmatic)
import { Client } from '@modelcontextprotocol/sdk/client/index.js';
import { StdioClientTransport } from '@modelcontextprotocol/sdk/client/stdio.js';
const transport = new StdioClientTransport({
command: 'node',
args: ['C:/AIapps/SageMCP/dist/index.js'],
});
const client = new Client({ name: 'my-client', version: '1.0.0' }, {});
await client.connect(transport);
// List available tools
const tools = await client.listTools();
console.log(tools);
// Call a tool
const result = await client.callTool({
name: 'search_papers',
arguments: { query: '神學', limit: 5 }
});
console.log(result);Configuration
Environment Variables
Variable | Description | Default |
| Custom database file path |
|
Example with custom DB path:
{
"mcpServers": {
"sage": {
"command": "node",
"args": ["C:/AIapps/SageMCP/dist/index.js"],
"env": {
"SAGE_DB_PATH": "D:/Research/my_papers.db"
}
}
}
}Adding Your Own Papers
Via the MCP Tool
LLMs can use the add_paper tool directly to add papers.
Via XML Import
Place your XML file in data/ and run:
npm run import-xml -- ./data/your_papers.xmlProgrammatically
import { initDb, addPaper } from './dist/db.js';
await initDb();
addPaper({
title: 'Your Paper Title',
authors: 'Author One, Author Two',
abstract: 'Paper abstract...',
content: 'Full paper content...',
publication: 'Journal Name',
publication_date: '2024-01-15',
doi: '10.1234/example',
url: 'https://example.com/paper',
topics: 'Topic1, Topic2',
keywords: 'keyword1, keyword2, keyword3'
});Database Schema
Papers are stored in SQLite with full-text search indexing:
Field | Type | Description |
| INTEGER | Auto-incrementing primary key |
| TEXT | Paper title |
| TEXT | Comma-separated author list |
| TEXT | Paper abstract |
| TEXT | Full paper text |
| TEXT | Journal/conference name |
| TEXT | Publication date (YYYY-MM-DD) |
| TEXT | DOI identifier (optional) |
| TEXT | URL to paper (optional) |
| TEXT | Comma-separated topics |
| TEXT | Comma-separated keywords |
VPS Deployment
Single command deploys everything (from your local machine):
# Windows PowerShell
.\deploy\deploy.ps1 -VpsHost "user@your-vps.com"
# Linux/macOS
./deploy/deploy.sh user@your-vps.comThis automatically:
Installs Node.js and dependencies on VPS
Creates
sageuser and directoriesCopies source files and database
Builds the project
Sets up and starts systemd service
Uninstall:
# Windows
.\deploy\uninstall.ps1 -VpsHost "user@your-vps.com"
# Linux/macOS (or directly on VPS)
./deploy/uninstall.shSee deploy/README.md for detailed options and troubleshooting.
Troubleshooting
"Cannot find module" errors
npm run build # Rebuild TypeScriptClaude Desktop doesn't show tools
Check config JSON syntax (use a JSON validator)
Ensure path uses forward slashes:
C:/path/to/filenotC:\path\to\fileRestart Claude Desktop completely (quit from system tray)
Check Claude's logs:
%APPDATA%\Claude\logs\
Database errors
# Reset database
rm -rf data/sage.db
npm run seed # or npm run import-xmlTest MCP server manually
echo '{"jsonrpc":"2.0","id":1,"method":"tools/list"}' | node dist/index.jsLicense
MIT
This server cannot be installed
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.