Make Gitea URL configurable and update documentation
This commit is contained in:
parent
60014c1971
commit
c16f82ea38
|
@ -0,0 +1,3 @@
|
||||||
|
# Gitea Configuration
|
||||||
|
GITEA_API_URL=https://gitea.r8z.us/api/v1
|
||||||
|
GITEA_TOKEN=your_token_here
|
100
README.md
100
README.md
|
@ -1,70 +1,70 @@
|
||||||
# gitea-server MCP Server
|
# Gitea MCP Server
|
||||||
|
|
||||||
"An MCP server providing access to gitea.r8z.us"
|
An MCP server that provides tools for interacting with the Gitea API.
|
||||||
|
|
||||||
This is a TypeScript-based MCP server that implements a simple notes system. It demonstrates core MCP concepts by providing:
|
## Setup
|
||||||
|
|
||||||
- Resources representing text notes with URIs and metadata
|
1. Clone the repository
|
||||||
- Tools for creating new notes
|
2. Install dependencies:
|
||||||
- Prompts for generating summaries of notes
|
```bash
|
||||||
|
npm install
|
||||||
|
```
|
||||||
|
3. Copy the example environment file:
|
||||||
|
```bash
|
||||||
|
cp .env.example .env
|
||||||
|
```
|
||||||
|
4. Configure your environment variables in `.env`:
|
||||||
|
- `GITEA_API_URL`: Your Gitea API URL (e.g., https://gitea.example.com/api/v1)
|
||||||
|
- `GITEA_TOKEN`: Your Gitea API token
|
||||||
|
|
||||||
## Features
|
## Building
|
||||||
|
|
||||||
### Resources
|
|
||||||
- List and access notes via `note://` URIs
|
|
||||||
- Each note has a title, content and metadata
|
|
||||||
- Plain text mime type for simple content access
|
|
||||||
|
|
||||||
### Tools
|
|
||||||
- `create_note` - Create new text notes
|
|
||||||
- Takes title and content as required parameters
|
|
||||||
- Stores note in server state
|
|
||||||
|
|
||||||
### Prompts
|
|
||||||
- `summarize_notes` - Generate a summary of all stored notes
|
|
||||||
- Includes all note contents as embedded resources
|
|
||||||
- Returns structured prompt for LLM summarization
|
|
||||||
|
|
||||||
## Development
|
|
||||||
|
|
||||||
Install dependencies:
|
|
||||||
```bash
|
|
||||||
npm install
|
|
||||||
```
|
|
||||||
|
|
||||||
Build the server:
|
|
||||||
```bash
|
```bash
|
||||||
npm run build
|
npm run build
|
||||||
```
|
```
|
||||||
|
|
||||||
For development with auto-rebuild:
|
## Available Tools
|
||||||
```bash
|
|
||||||
npm run watch
|
|
||||||
```
|
|
||||||
|
|
||||||
## Installation
|
- `list_repositories`: List repositories for the authenticated user
|
||||||
|
- `get_repository`: Get details about a specific repository
|
||||||
|
- `list_issues`: List issues in a repository
|
||||||
|
- `create_issue`: Create a new issue in a repository
|
||||||
|
- `list_pull_requests`: List pull requests in a repository
|
||||||
|
- `create_repository`: Create a new repository
|
||||||
|
- `get_contents`: Get contents of a file or directory in a repository
|
||||||
|
- `add_file_to_repo`: Add a new file to a repository
|
||||||
|
- `create_branch`: Create a new branch in a repository
|
||||||
|
|
||||||
To use with Claude Desktop, add the server config:
|
## Tool Usage Examples
|
||||||
|
|
||||||
On MacOS: `~/Library/Application Support/Claude/claude_desktop_config.json`
|
### Adding a File to a Repository
|
||||||
On Windows: `%APPDATA%/Claude/claude_desktop_config.json`
|
|
||||||
|
|
||||||
```json
|
```typescript
|
||||||
{
|
{
|
||||||
"mcpServers": {
|
"owner": "username",
|
||||||
"gitea-server": {
|
"repo": "repository-name",
|
||||||
"command": "/path/to/gitea-server/build/index.js"
|
"path": "path/to/file.txt",
|
||||||
}
|
"content": "File content here", // or use file_text
|
||||||
}
|
"message": "Commit message",
|
||||||
|
"branch": "main" // optional
|
||||||
}
|
}
|
||||||
```
|
```
|
||||||
|
|
||||||
### Debugging
|
### Creating a Repository
|
||||||
|
|
||||||
Since MCP servers communicate over stdio, debugging can be challenging. We recommend using the [MCP Inspector](https://github.com/modelcontextprotocol/inspector), which is available as a package script:
|
```typescript
|
||||||
|
{
|
||||||
```bash
|
"name": "repository-name",
|
||||||
npm run inspector
|
"description": "Repository description",
|
||||||
|
"private": false,
|
||||||
|
"autoInit": true
|
||||||
|
}
|
||||||
```
|
```
|
||||||
|
|
||||||
The Inspector will provide a URL to access debugging tools in your browser.
|
## Error Handling
|
||||||
|
|
||||||
|
The server will throw appropriate errors if:
|
||||||
|
- Required environment variables are missing
|
||||||
|
- API requests fail
|
||||||
|
- Invalid parameters are provided
|
||||||
|
- Tool names are incorrect
|
||||||
|
|
|
@ -53,10 +53,14 @@ interface PullRequestArgs extends RepoArgs {
|
||||||
}
|
}
|
||||||
|
|
||||||
const GITEA_TOKEN = process.env.GITEA_TOKEN;
|
const GITEA_TOKEN = process.env.GITEA_TOKEN;
|
||||||
|
const GITEA_API_URL = process.env.GITEA_API_URL;
|
||||||
|
|
||||||
if (!GITEA_TOKEN) {
|
if (!GITEA_TOKEN) {
|
||||||
throw new Error('GITEA_TOKEN environment variable is required');
|
throw new Error('GITEA_TOKEN environment variable is required');
|
||||||
}
|
}
|
||||||
const GITEA_API_URL = 'https://gitea.r8z.us/api/v1';
|
if (!GITEA_API_URL) {
|
||||||
|
throw new Error('GITEA_API_URL environment variable is required');
|
||||||
|
}
|
||||||
|
|
||||||
class GiteaServer {
|
class GiteaServer {
|
||||||
private server: Server;
|
private server: Server;
|
||||||
|
|
Loading…
Reference in New Issue