mcpField
M
Model Context Protocol (MCP) Server for NF-OSI

Model Context Protocol (MCP) Server for NF-OSI

Local
github.com/nf-osiScience & Education0Updated 49w ago

About Model Context Protocol (MCP) Server for NF-OSI

A collection of MCP servers for NF-OSI, intended for AI assistants working with Synapse data curation. Its production-ready `nfty` server handles dataset metadata and project review; an institutional memory server is under development.

Key features

  1. 01Query Synapse dataset metadata
  2. 02Validate metadata against JSON schemas
  3. 03Submit Synapse annotations
  4. 04Review and classify projects
  5. 05Retrieve Data Sharing Plans

Use cases

  1. 01Extract metadata from Synapse datasets
  2. 02Check metadata before submission
  3. 03Annotate datasets in Synapse
  4. 04Review projects and sharing plans

MCP support

The repository contains independent MCP servers that clients can configure and run separately. The available `nfty` server exposes Synapse curation tools to AI assistants.

Configuration

Local server config is the same for every client. Copy it into your client’s MCP config file.

mcp.json · Universal config
{
"mcpServers": {
"nf-osi": {
"command": "uvx",
"args": [
"."
]
}
}
}
Run commanduvx .

Local servers need a runtime on your machine (e.g. Node.js 18+). Config file locations differ by client; see your client’s docs.

Packages
pypi.

Tools

No tool list yet

Local servers expose tools only once running on your machine, and the maintainer has not provided a tool list.

Details

From the project README

Model Context Protocol (MCP) Servers for NF-OSI

A collection of MCP servers that give your AI assistant access to NF-OSI resources and tools.

Available Servers

nfty (Python)

Nifty tools for Synapse data curation workflows. Enables AI assistants to:

  • Query and extract metadata from Synapse datasets
  • Validate metadata against JSON schemas
  • Submit metadata as Synapse annotations
  • Review and classify Synapse projects
  • Retrieve Data Sharing Plans

Status: ✅ Production ready Language: Python 3.8+ Dependencies: synapseclient, mcp, requests, jsonschema

memory (Coming Soon)

Institutional memory and knowledge base for NF-OSI. Preserves:

  • Team history and design decisions from official documentation as well as sources like Slack
  • Tribal knowledge captured from long-time team members
  • Standard operating procedures and common patterns
  • Historical context for curation decisions
  • Project-specific context and conversation state

Status: 🚧 Under development Language: TBD

Overview

This repository is organized as a monorepo containing multiple independent MCP servers. Each server:

  • Is self-contained with its own dependencies
  • Can be installed and used independently
  • May be written in different programming languages
  • Follows the MCP protocol for AI assistant integration

Quick Start

Installation
  1. Clone the repository

    git clone <repository-url>
    cd mcp-server
    
  2. Install the server(s) you want to use

    Each server has its own installation instructions in its subdirectory:

    You can install and use multiple servers simultaneously - they run as independent processes.

Configuration

Each server is configured independently in your MCP client. You can enable one or multiple servers.

For Claude Desktop

Add to your Claude Desktop configuration file:

macOS: ~/Library/Application Support/Claude/claude_desktop_config.json Windows: %APPDATA%\Claude\claude_desktop_config.json Linux: ~/.config/Claude/claude_desktop_config.json

{
  "mcpServers": {
    "nfty": {
      "command": "uvx",
      "args": ["--from", "/absolute/path/to/mcp-server", "nfty"],
      "env": {
        "SYNAPSE_AUTH_TOKEN": "your-synapse-personal-access-token"
      }
    }
  }
}

Important: Replace /absolute/path/to/mcp-server with the actual path to your repository.

Multiple Servers Example:

{
  "mcpServers": {
    "nfty": {
      "command": "uvx",
      "args": ["--from", "/absolute/path/to/mcp-server", "nfty"],
      "env": {
        "SYNAPSE_AUTH_TOKEN": "your-synapse-personal-access-token"
      }
    },
    "memory": {
      "command": "node",
      "args": ["/absolute/path/to/mcp-server/memory/build/index.js"],
      "env": {}
    }
  }
}

Note: Each server runs as an independent process. You can enable/disable servers by adding/removing them from the configuration.


#### For Other MCP Clients

Refer to your client's documentation for MCP server configuration. Each server's configuration follows this pattern:

**For nfty (Python):**
- **Command**: `uvx`
- **Args**: `["--from", "/path/to/mcp-server", "nfty"]`
- **Environment**: `SYNAPSE_AUTH_TOKEN` with your token

**For memory (Node.js example):**
- **Command**: `node`
- **Args**: `["/path/to/mcp-server/memory/build/index.js"]`
- **Environment**: Server-specific env vars

**For compiled servers (Go/Rust example):**
- **Command**: `"/path/to/mcp-server/server-name/bin/executable"`
- **Args**: `[]` (or server-specific args)
- **Environment**: Server-specific env vars

### Verify Installation

Test each server directly:

**nfty:**
```bash
export SYNAPSE_AUTH_TOKEN="your-token"
uvx --from . nfty

The server will start and wait for MCP protocol messages. Press Ctrl+C to stop.

Other servers: See each server's README for specific testing instructions.

Usage

Once configured, your AI assistant can access the nifty tools provided by each enabled server.

See each server's documentation for specific capabilities and usage examples:

Development

Running Tests
Tests
  • See tests within server-specific directory
  • AI agent tests:
# Requires goose
export SYNAPSE_AUTH_TOKEN=$SYNAPSE_AUTH_TOKEN
goose run --recipe tests/curator_tester.yaml
Adding New Tools
nfty
  1. Add tool definition to list_tools() in mcp_server.py
  2. Implement the async handler function
  3. Add handler to call_tool() dispatcher
  4. Update documentation in TOOLS.md
  5. Update test prompt in tests/curator_tester.yaml

Comments

Markdown supported

New to MCP?

From what the protocol is to installing your first server, these answers cover most first questions.

An open protocol that defines how AI applications connect to external tools and data in a uniform way. Clients talk to the model; MCP servers provide tools, resources and prompt templates. They exchange standard messages, so one server can be reused by many clients.