afpnews-mcp-server 2.0.1 → 2.0.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -3,21 +3,26 @@ project_name: "afpnews-mcp-server"
3
3
 
4
4
 
5
5
  # list of languages for which language servers are started; choose from:
6
- # al bash clojure cpp csharp
7
- # csharp_omnisharp dart elixir elm erlang
8
- # fortran fsharp go groovy haskell
9
- # java julia kotlin lua markdown
10
- # matlab nix pascal perl php
11
- # php_phpactor powershell python python_jedi r
12
- # rego ruby ruby_solargraph rust scala
13
- # swift terraform toml typescript typescript_vts
14
- # vue yaml zig
6
+ # al angular ansible bash clojure
7
+ # cpp cpp_ccls crystal csharp csharp_omnisharp
8
+ # dart elixir elm erlang fortran
9
+ # fsharp go groovy haskell haxe
10
+ # hlsl html java json julia
11
+ # kotlin lean4 lua luau markdown
12
+ # matlab msl nix ocaml pascal
13
+ # perl php php_phpactor powershell python
14
+ # python_jedi python_ty r rego ruby
15
+ # ruby_solargraph rust scala scss solidity
16
+ # swift systemverilog terraform toml typescript
17
+ # typescript_vts vue yaml zig
15
18
  # (This list may be outdated. For the current list, see values of Language enum here:
16
19
  # https://github.com/oraios/serena/blob/main/src/solidlsp/ls_config.py
17
20
  # For some languages, there are alternative language servers, e.g. csharp_omnisharp, ruby_solargraph.)
18
21
  # Note:
19
22
  # - For C, use cpp
20
23
  # - For JavaScript, use typescript
24
+ # - For Angular projects, use angular (subsumes typescript+html; requires `npm install` in the project root)
25
+ # - For SCSS / Sass / plain CSS, use scss (some-sass-language-server handles all three)
21
26
  # - For Free Pascal/Lazarus, use pascal
22
27
  # Special requirements:
23
28
  # Some languages require additional setup/installations.
@@ -52,52 +57,19 @@ ignored_paths: []
52
57
  # Added on 2025-04-18
53
58
  read_only: false
54
59
 
55
- # list of tool names to exclude. We recommend not excluding any tools, see the readme for more details.
56
- # Below is the complete list of tools for convenience.
57
- # To make sure you have the latest list of tools, and to view their descriptions,
58
- # execute `uv run scripts/print_tool_overview.py`.
59
- #
60
- # * `activate_project`: Activates a project by name.
61
- # * `check_onboarding_performed`: Checks whether project onboarding was already performed.
62
- # * `create_text_file`: Creates/overwrites a file in the project directory.
63
- # * `delete_lines`: Deletes a range of lines within a file.
64
- # * `delete_memory`: Deletes a memory from Serena's project-specific memory store.
65
- # * `execute_shell_command`: Executes a shell command.
66
- # * `find_referencing_code_snippets`: Finds code snippets in which the symbol at the given location is referenced.
67
- # * `find_referencing_symbols`: Finds symbols that reference the symbol at the given location (optionally filtered by type).
68
- # * `find_symbol`: Performs a global (or local) search for symbols with/containing a given name/substring (optionally filtered by type).
69
- # * `get_current_config`: Prints the current configuration of the agent, including the active and available projects, tools, contexts, and modes.
70
- # * `get_symbols_overview`: Gets an overview of the top-level symbols defined in a given file.
71
- # * `initial_instructions`: Gets the initial instructions for the current project.
72
- # Should only be used in settings where the system prompt cannot be set,
73
- # e.g. in clients you have no control over, like Claude Desktop.
74
- # * `insert_after_symbol`: Inserts content after the end of the definition of a given symbol.
75
- # * `insert_at_line`: Inserts content at a given line in a file.
76
- # * `insert_before_symbol`: Inserts content before the beginning of the definition of a given symbol.
77
- # * `list_dir`: Lists files and directories in the given directory (optionally with recursion).
78
- # * `list_memories`: Lists memories in Serena's project-specific memory store.
79
- # * `onboarding`: Performs onboarding (identifying the project structure and essential tasks, e.g. for testing or building).
80
- # * `prepare_for_new_conversation`: Provides instructions for preparing for a new conversation (in order to continue with the necessary context).
81
- # * `read_file`: Reads a file within the project directory.
82
- # * `read_memory`: Reads the memory with the given name from Serena's project-specific memory store.
83
- # * `remove_project`: Removes a project from the Serena configuration.
84
- # * `replace_lines`: Replaces a range of lines within a file with new content.
85
- # * `replace_symbol_body`: Replaces the full definition of a symbol.
86
- # * `restart_language_server`: Restarts the language server, may be necessary when edits not through Serena happen.
87
- # * `search_for_pattern`: Performs a search for a pattern in the project.
88
- # * `summarize_changes`: Provides instructions for summarizing the changes made to the codebase.
89
- # * `switch_modes`: Activates modes by providing a list of their names
90
- # * `think_about_collected_information`: Thinking tool for pondering the completeness of collected information.
91
- # * `think_about_task_adherence`: Thinking tool for determining whether the agent is still on track with the current task.
92
- # * `think_about_whether_you_are_done`: Thinking tool for determining whether the task is truly completed.
93
- # * `write_memory`: Writes a named memory (for future reference) to Serena's project-specific memory store.
60
+ # list of tool names to exclude.
61
+ # This extends the existing exclusions (e.g. from the global configuration)
62
+ # Find the list of tools here: https://oraios.github.io/serena/01-about/035_tools.html
94
63
  excluded_tools: []
95
64
 
96
- # list of tools to include that would otherwise be disabled (particularly optional tools that are disabled by default)
65
+ # list of tools to include that would otherwise be disabled (particularly optional tools that are disabled by default).
66
+ # This extends the existing inclusions (e.g. from the global configuration).
67
+ # Find the list of tools here: https://oraios.github.io/serena/01-about/035_tools.html
97
68
  included_optional_tools: []
98
69
 
99
70
  # fixed set of tools to use as the base tool set (if non-empty), replacing Serena's default set of tools.
100
71
  # This cannot be combined with non-empty excluded_tools or included_optional_tools.
72
+ # Find the list of tools here: https://oraios.github.io/serena/01-about/035_tools.html
101
73
  fixed_tools: []
102
74
 
103
75
  # list of mode names to that are always to be included in the set of active modes
@@ -108,11 +80,14 @@ fixed_tools: []
108
80
  # Set this to a list of mode names to always include the respective modes for this project.
109
81
  base_modes:
110
82
 
111
- # list of mode names that are to be activated by default.
112
- # The full set of modes to be activated is base_modes + default_modes.
113
- # If the setting is undefined, the default_modes from the global configuration (serena_config.yml) apply.
83
+ # list of mode names that are to be activated by default, overriding the setting in the global configuration.
84
+ # The full set of modes to be activated is base_modes (from global config) + default_modes + added_modes.
85
+ # If the setting is undefined/empty, the default_modes from the global configuration (serena_config.yml) apply.
114
86
  # Otherwise, this overrides the setting from the global configuration (serena_config.yml).
87
+ # Therefore, you can set this to [] if you do not want the default modes defined in the global config to apply
88
+ # for this project.
115
89
  # This setting can, in turn, be overridden by CLI parameters (--mode).
90
+ # See https://oraios.github.io/serena/02-usage/050_configuration.html#modes
116
91
  default_modes:
117
92
 
118
93
  # initial prompt for the project. It will always be given to the LLM upon activating the project
@@ -147,3 +122,19 @@ ignored_memory_patterns: []
147
122
  # Have a look at the docstring of the constructors of the LS implementations within solidlsp (e.g., for C# or PHP) to see which options are available.
148
123
  # No documentation on options means no options are available.
149
124
  ls_specific_settings: {}
125
+
126
+ # list of mode names to be activated additionally for this project, e.g. ["query-projects"]
127
+ # The full set of modes to be activated is base_modes (from global config) + default_modes + added_modes.
128
+ # See https://oraios.github.io/serena/02-usage/050_configuration.html#modes
129
+ added_modes:
130
+
131
+ # list of additional workspace folder paths for cross-package reference support (e.g. in monorepos).
132
+ # Paths can be absolute or relative to the project root.
133
+ # Each folder is registered as an LSP workspace folder, enabling language servers to discover
134
+ # symbols and references across package boundaries.
135
+ # Currently supported for: TypeScript.
136
+ # Example:
137
+ # additional_workspace_folders:
138
+ # - ../sibling-package
139
+ # - ../shared-lib
140
+ additional_workspace_folders: []
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "afpnews-mcp-server",
3
- "version": "2.0.1",
3
+ "version": "2.0.2",
4
4
  "description": "",
5
5
  "main": "src/index.ts",
6
6
  "type": "module",
@@ -13,7 +13,7 @@ export const countryNewsPrompt = {
13
13
  role: 'user' as const,
14
14
  content: {
15
15
  type: 'text' as const,
16
- text: `Use afp_search_articles to find recent news for country "${country}" (facets: { lang: ["${lang}"], country: ["${country}"] }, size: 15). Write a news summary for this country covering the main stories of the day.`,
16
+ text: `Use afp_search_articles to find recent news for country "${country}" (facets: { langs: ["${lang}"], country: ["${country}"] }, size: 15). Write a news summary for this country covering the main stories of the day.`,
17
17
  },
18
18
  }],
19
19
  }),
@@ -40,7 +40,7 @@ const inputSchema = z.object({
40
40
  size: z.number().optional().describe('Number of results to return (default 10, max 1000)'),
41
41
  sortOrder: z.enum(['asc', 'desc']).optional().describe("Sort order by date (default 'desc')"),
42
42
  offset: z.number().optional().describe('Offset for pagination (number of results to skip)'),
43
- facets: z.record(z.string(), facetParamValueSchema).optional().describe("Facet filters passed to the AFP query (e.g. { lang: ['fr'], dateFrom: '2026-01-01', dateTo: '2026-01-31', country: ['usa'], genre: 'Papier général', urgency: 1 })."),
43
+ facets: z.record(z.string(), facetParamValueSchema).optional().describe("Facet filters passed to the AFP query (e.g. { langs: ['fr'], dateFrom: '2026-01-01', dateTo: '2026-01-31', country: ['usa'], genre: 'Papier général', urgency: 1 })."),
44
44
  }).strict().superRefine((value, ctx) => {
45
45
  for (const key of Object.keys(value.facets ?? {})) {
46
46
  if (reservedFacetKeys.has(key)) {
@@ -88,7 +88,7 @@ Returns:
88
88
  - csv: Header row + data rows with selected fields
89
89
 
90
90
  Examples:
91
- - Latest Ukraine news: { query: "Ukraine", facets: { lang: ["en"] }, size: 5 }
91
+ - Latest Ukraine news: { query: "Ukraine", facets: { langs: ["en"] }, size: 5 }
92
92
  - French front page: { preset: "a-la-une" }
93
93
  - Export metadata as CSV: { query: "economy", format: "csv", fields: ["uno", "headline", "country"] }`,
94
94
  inputSchema,
@@ -29,7 +29,7 @@ const inputSchema = z.object({
29
29
  sortOrder: z.enum(['asc', 'desc']).optional().describe("Sort order by date (default 'desc')"),
30
30
  format: outputFormatEnum.optional().describe('Output format: markdown (default), json, or csv'),
31
31
  facets: z.record(z.string(), facetParamValueSchema).optional().describe(
32
- "Additional AFP facet filters (e.g. { lang: ['fr'], country: ['fra'], dateFrom: '2026-01-01' })"
32
+ "Additional AFP facet filters (e.g. { langs: ['fr'], country: ['fra'], dateFrom: '2026-01-01' })"
33
33
  ),
34
34
  }).strict().superRefine((value, ctx) => {
35
35
  for (const key of Object.keys(value.facets ?? {})) {
@@ -65,7 +65,7 @@ Args:
65
65
  - offset: Pagination offset
66
66
  - sortOrder: 'asc' or 'desc' (default 'desc')
67
67
  - format: markdown (default, with inline thumbnails), json (structured with rendition URLs), csv
68
- - facets: Additional AFP filters (e.g. { lang: ['fr'], country: ['fra'], dateFrom: '2026-01-01' }).
68
+ - facets: Additional AFP filters (e.g. { langs: ['fr'], country: ['fra'], dateFrom: '2026-01-01' }).
69
69
  Defaults: provider=afp. Override provider only when partner media is explicitly needed.
70
70
 
71
71
  Pagination:
@@ -84,7 +84,7 @@ Rendition sizes:
84
84
 
85
85
  Examples:
86
86
  - AFP football photos: { class: "picture", query: "football" }
87
- - French infographics on economy: { class: "graphic", query: "économie", facets: { lang: ["fr"] } }
87
+ - French infographics on economy: { class: "graphic", query: "économie", facets: { langs: ["fr"] } }
88
88
  - All media on a topic: { query: "climate protest", format: "json" }
89
89
  - Export gallery CSV: { class: "picture", query: "Paris", format: "csv" }`,
90
90
  inputSchema,